Я испытываю неожиданное поведение и надеялся, что кто-то может помочь с некоторыми указаниями относительно того, в каких областях сосредоточиться на расследовании.
У меня есть два метода: один по сути выполняет деление на нулевой тест на double, второй вызывает метод extern
для неуправляемой dll.
Примечание.. В среде .NET, деление Double на Zero должно возвращать значение бесконечности (забавно либо положительных, либо отрицательных ароматов).
Псевдокод для того, что я делаю, выглядит примерно так:
InfinityTest(); // Returns an Infinity value as expected
DllCall();
InfinityTest(); // Divide by zero error on second call.
Первый вызов InfinityTest()
возвращает значение Infinity, как ожидалось. Второй вызов InfinityTest()
вызывает исключение "Разделить на ноль", которое я не ожидал.
Обновление
Эффективный InfinityTest()
код ниже. Для краткости я удалил элементы try/catch и т.д. У меня нет разрешения вдаваться в подробности о элементе псевдокода DllCall()
, извинения.
private double InfinityTest()
{
double a = 1.0;
int b = 0;
return a / b;
}