Автоматическое повышение исключения для значений NaN или Infinity
У меня есть длинная последовательность вычислений (с использованием переменных типа "double"), где некоторые операции могут привести (в зависимости от входных значений) к "NaN" или "Infinity".
Поскольку я не хочу добавлять что-то вроде следующего:
if ((double.IsInfinity(result)) || (double.NaN(result))) { ... }
после каждой операции я хотел бы активировать автоматическое повышение исключения для таких результатов, а затем просто поймать исключение, чтобы остановить его после первого "неправильного" результата.
Я попробовал это сделать:
Вы также можете попробовать включить функцию "проверить арифметическое переполнение/недостаточный поток"." Он находится в свойствах вашего проекта, в разделе "Build->Advanced Build Settings"
Когда он включен, арифметические исключения будут выдаваться для переполнения и недостаточного потока (вместо обертывания). Это может относиться или не относиться к функции ln. Дай ему попробовать.
а это:
Чтобы перехватить, где генерируется конкретное исключение, вы можете (временно) прервать работу, когда исключение генерируется в отладчике.
Выберите debug &ГТ; исключения разверните дерево и выберите среды CLR исключения и gt; Система > В системе.ArithmeticException и отметьте опцию "брошенный".
но все равно никаких исключений не возникало после деления на ноль.
Есть предложения?
Спасибо.