C# 提供了checked 和unchecked 关键字来处理整型异常。 Checked 和 unchecked 关键字分别指定已检查上下文和未检查上下文。在检查的上下文中,算术溢出引发异常,而在未经检查的上下文中,算术溢出被忽略并且结果被截断。
checked 关键字用于在编译时显式检查整数类型值的溢出和转换。
让无涯教程首先来看一个不使用Checked关键字的示例。
using System; namespace CSharpProgram { class Program { static void Main(string[] args) { int val = int.MaxValue; Console.WriteLine(val + 2); } } }
输出:
链接:https://www.learnfk.comhttps://www.learnfk.com/csharp/c-sharp-checked-and-unchecked.html
来源:LearnFk无涯教程网
-2147483647
请看,上面的程序产生了错误的结果,并且没有抛出任何溢出异常。
此程序抛出异常并停止程序执行。
using System; namespace CSharpProgram { class Program { static void Main(string[] args) { checked { int val = int.MaxValue; Console.WriteLine(val + 2); } } } }
输出:
链接:https://www.learnfk.comhttps://www.learnfk.com/csharp/c-sharp-checked-and-unchecked.html
来源:LearnFk无涯教程网
Unhandled Exception: System.OverflowException: Arithmetic operation resulted in an overflow.
Unchecked 关键字忽略整数类型算术异常。它不会显式检查并产生可能被截断或错误的结果。
using System; namespace CSharpProgram { class Program { static void Main(string[] args) { unchecked { int val = int.MaxValue; Console.WriteLine(val + 2); } } } }
输出:
链接:https://www.learnfk.comhttps://www.learnfk.com/csharp/c-sharp-checked-and-unchecked.html
来源:LearnFk无涯教程网
-2147483647
祝学习愉快!(内容编辑有误?请选中要编辑内容 -> 右键 -> 修改 -> 提交!)