Маскирование исключений с плавающей запятой с помощью Set8087CW, SetMXCSR и TWebBrowser

Как я получаюДеление с плавающей точкой на ноль » Исключение при использовании TWebBrowser и TEmbeddedWB время от времени я обнаружил, что мне нужно замаскировать деление на ноль исключений Set8087CW или SetMXCSR.

Q1: Что было бы лучшим подходом для этого:

маскировать такие исключения на ранних этапах запуска приложения и больше никогда их не трогать (приложение является многопоточным)?использоватьOnBeforeNavigate а такжеOnDocumentComplete события для маскировки / снятия маскировки исключений? (есть ли вероятность того, что исключение может произойти после загрузки документа?)

Q2: что будет лучше "команда» только замаскироватьделение на ноль" и ничего больше - если приложение 32-битное, есть ли необходимость маскировать 64-битное исключение тоже?

Приложение, которым я пользуюсь, имеет постоянный контроль TWebBrowser для отображения содержимого электронной почты.

Кроме того, если кто-нибудь может уточнить - это конкретная ошибка с управлением TWebBrowser от Microsoft или просто разница между Delphi / C ++ Builder и инструментами Microsoft? Что бы произошло, если бы я разместил TWebBrowser в приложении Visual C ++, если бы появилась ошибка деления на ноль - это нене может быть переведено в исключение, но что будет потом - как будет обрабатываться Visual C ++ "деление на ноль" исключение тогда?

Странно, что Microsoft неЯ не замечаю этой проблемы в течение длительного времени - также странно, что Embarcardero никогда не замечал ее тоже. Поскольку маскирование исключения с плавающей запятой эффективно также маскирует исключение вашей собственной программы для этой конкретной цели.

ОБНОВИТЬ

Мое окончательное решение после некоторого экзамена:

SetExceptionMask(GetExceptionMask() < exZeroDivide);

Ответы на вопрос(1)

Ваш ответ на вопрос