gpt4 book ai didi

c# - 当任何数学运算产生 'NaN' 时,如何强制 C# 编译器抛出异常?

转载 作者:太空狗 更新时间:2023-10-29 22:04:03 24 4
gpt4 key购买 nike

我最近编写的程序中的某些数学函数返回 Not Acceptable 值,例如 NaN(可能是由于未检查某些函数的输入参数)。问题是很难追踪哪些函数传递了错误的值。这会导致错误在整个代码中传播,并使程序在几分钟或几小时后崩溃(如果有的话)。

我想知道是否有一种方法可以在任何操作产生 NaN 值时捕获这些错误操作(如果我记得的话,这与某些 C/C++ 编译器抛出的“DivisionByZero 异常”几乎相同)。

提前致谢。

P.D:如果需要,请随时重新标记我的问题。

最佳答案

如果没有看到您的代码,这个答案必然会含糊不清,但一种方法是检查函数的输出,以及它是否为“NaN”引发和异常:

if (double.IsNaN(result))
{
throw new ArithmeticException();
}

但是有关于异常的更多细节。

更新

要捕获特定异常的抛出位置,您可以(暂时)在调试器中抛出异常时中断。

选择 Debug > Exceptions,然后伸展树(Splay Tree)以选择 Common Language Runtime Exceptions > System > System.ArithmeticException 并选中“Thrown”选项。

问题在于它会在抛出它的任何地方中断,而不仅仅是在您的代码中。将显式代码放在足够低的级别可以解决这个问题。

关于c# - 当任何数学运算产生 'NaN' 时,如何强制 C# 编译器抛出异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2251507/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com