Не видя ваш код, этот ответ будет обязательно расплывчатым, но один из способов сделать это - проверить вывод вашей функции и, если это «NaN», повышение и исключение:
if (double.IsNaN(result))
{
throw new ArithmeticException();
}
Но с более подробной информацией об исключении.
UPDATE
Чтобы отловить, где выбрасывается определенное исключение, вы можете (временно) прервать его, когда исключение выдается в отладчике.
Выберите Отладка> Исключения , затем разверните дерево, чтобы выбрать Исключения времени выполнения общего языка> Система> System.ArithmeticException и отметьте опцию «Брошенный».
Проблема с этим в том, что он будет ломаться везде, где он выдается, а не только в вашем коде. Помещение явного кода на достаточно низкий уровень позволяет обойти это.