Некоторые математические функции в программе, которую я недавно написал, возвращают неприемлемые значения, такие как NaN (возможно, из-за того, что не проверяются входные параметры некоторых функций). Проблема в том, что довольно сложно отслеживать, какие функции передают неправильные значения. Это приводит к тому, что ошибки распространяются по всему коду и приводят к сбою программы в минутах или через несколько часов, если это вообще возможно.Как заставить компилятор C# генерировать исключение, когда любая математическая операция создает «NaN»?
Интересно, есть ли способ поймать эти неисправные операции в момент, когда значение NaN возникает из-за какой-либо операции (почти так же, как в случае исключения DivisionByZero, созданного некоторыми компиляторами C/C++, если я помню).
Заранее спасибо.
P.D: Пожалуйста, не стесняйтесь повторно пометить мой вопрос, если необходимо.
В чем причина аварии? –
Мне кажется, что это случай, когда следует учитывать включение в разработку. Если ваши математические функции не слишком велики, вы можете правильно определить предварительные и постконфиденциальные ситуации и написать тесты для них, чтобы избежать их возвращения NaN в первую очередь. – Frank
В этом случае доступ к массиву, где index = (long) NaNvalue, но это могло быть что-то еще. – Trap