csharp
{
try
{
int i = int.MaxValue;
int j;
checked
{
j = i + 1;
}
}
catch (OverflowException er)
{
Console.WriteLine($"加Checked------>{er.Message}");
}
}
{
try
{
int i = int.MaxValue;
int j;
j = i + 1;
}
catch (OverflowException er)
{
Console.WriteLine($"没有加Checked------>{er.Message}");
}
}
-
溢出检查 :在
checked
关键字包围的代码块中,如果发生整数溢出,编译器会抛出OverflowException
异常。 -
默认行为:在 C# 中,默认情况下,整数运算不会检查溢出,如果发生溢出,结果会被截断,而不是抛出异常。
所以即使发生溢出,也不会抛出异常。结果是 i + 1
被截断为 int
类型的最小值,因为整数溢出是环绕 的。