C#中对于溢出的处理
2012-08-12 16:09
92 查看
大家知道,计算机进行数学计算时,往往会出现计算结果超出这个结果所属类型的值域的情况,这种现象我们称为溢出。
C#中,对于溢出的处理有两种选择:
(1).你可以通过调整编译器的选项来检测整个程序。
(2).你可以声明可能发生溢出的模块,进行局部检测。
如果你选择第一种方案,即打算在整个程序中控制溢出检测,可以选中C#编译器设置面板中的Checked选项(checked+)。
如果不希望溢出检测作用于整个程序,我们可以使用局部检测的方案。利用检测语句可以很容易做到。checked和unchecked语句就是用来控制整型算术运算和转换中的溢出检测的,这我们在上一章中已经介绍过。
下面以一个计算阶乘的例子说明它们的用法。
程序清单8-8:
当阶乘运算发生溢出时,程序将发出异常信息:
System.OverflowException at Factorial.main(System.String[])
本文来自编程入门网:http://www.bianceng.cn/Programming/csharp/200709/4413.htm
C#中,对于溢出的处理有两种选择:
(1).你可以通过调整编译器的选项来检测整个程序。
(2).你可以声明可能发生溢出的模块,进行局部检测。
如果你选择第一种方案,即打算在整个程序中控制溢出检测,可以选中C#编译器设置面板中的Checked选项(checked+)。
如果不希望溢出检测作用于整个程序,我们可以使用局部检测的方案。利用检测语句可以很容易做到。checked和unchecked语句就是用来控制整型算术运算和转换中的溢出检测的,这我们在上一章中已经介绍过。
下面以一个计算阶乘的例子说明它们的用法。
程序清单8-8:
using System; class Factorial { public static void Main(string[] args) { long nFactorial=1; long nComputerto=Int64.Parse(args[0]); long nCurDig=1; for(nCurDig=1;nCurDig<=nComputerto;nCurDig++) checked{nFactorial*=nCurDig;} Console.WriteLine("{0}!is{1}",nComputerto,nFactorial); } }
当阶乘运算发生溢出时,程序将发出异常信息:
System.OverflowException at Factorial.main(System.String[])
本文来自编程入门网:http://www.bianceng.cn/Programming/csharp/200709/4413.htm
相关文章推荐
- C#对于字符串的处理类(剪裁、过滤危险字符、替换sql中有问题符号等)
- eclipse对于虚拟内存的溢出处理
- 对于C#中插入数据(Ntext)类型超过大小8000提示处理!
- C#中对于json格式数据的处理
- C#使用checked关键字处理"溢出"错误
- C#对于字符串的处理类(剪裁、过滤危险字符、替换sql中有问题符号等)
- C#对于字符串的处理类(剪裁、过滤危险字符、替换sql中有问题符号等)
- C#使用checked关键字处理"溢出"错误
- C#对于任务栏通知的处理之气泡通知
- C# 对于执行时间较长函数,如何显示“处理中...”
- C#和Qt实现的对于异常处理的一个使用策略
- C#基本图像处理
- C#学习——CLR异常处理原理
- C# WinForm捕获未处理的异常
- 三层网络设备对于IP报文的分片和重组处理原理
- C#线程处理
- C# 使用linq处理返回带datetime类型数据 json显示/date(xxxxx)/
- 使用Django来处理对于静态文件的请求
- C#三步实现标准事件处理程序
- KETTLE——Weka处理大数据量内存溢出问题