c#中算法溢出的预防和处理方法是什么?

本文关键字:处理 方法 是什么 算法 溢出 | 更新日期: 2023-09-27 18:07:59

c#中算术溢出的预防和处理方法是什么?

和算术溢出(逻辑错误)转换为运行时错误?

我至少需要3种方法来解决这个问题!

c#中算法溢出的预防和处理方法是什么?

您可以使用checked。

int z = 0;
    try
    {
        // The following line raises an exception because it is checked.
        z = checked(maxIntValue + 10);
    }
    catch (System.OverflowException e)
    {
        // The following line displays information about the error.
        Console.WriteLine("CHECKED and CAUGHT:  " + e.ToString());
    }
    // The value of z is still 0. 
    return z;

参见http://msdn.microsoft.com/en-us/library/74b4xzyw.aspx

的示例和解释。

OP:

您还可以使用Int32.MaxValue(用于int算术)来检查操作是否可能导致溢出,然后抛出您自己的异常或System.OverflowException

比如if ((Int32.MaxValue - x) < y) throw new Exception()