C# 中的检查异常与未检查异常
您可以在 C# 中以 checked 或 unchecked 的上下文执行语句。
在 checked 中,异常由算术溢出引发,而在 unchecked 上下文中,会忽略算术溢出。
Checked 异常
使用 checked 关键字显式启用整数类型算术运算和转换的溢出检查。为此,只需设置 checked 关键字即可。
可以使用编译器选项、环境配置或使用 checked 关键字来启用溢出检查。
res = checked(val + 10);
假设 val 的值为 2147483647,即 int 类型的最大值。上面的内容将引发错误,因为它被 checked 了。这会在运行时启用溢出检查。
Unchecked 异常
使用 unchecked 关键字可防止整数类型算术运算和转换的溢出检查。为此,只需设置 unchecked 关键字即可。
在这里,算术溢出被忽略。使用它来防止溢出检查。
res =unchecked(val + 10);
假设 val 的值为 2147483647。上面不会引发错误,因为使用 unchecked 关键字防止了溢出检查。
广告