怎么远程观看别人手机微信(远程观看别人手机

访客3年前关于黑客接单1022

通用语言运行时(CLR)具有的一个很大的优势为,异常处理是跨语言被标准化的。一个在C#中所引发的异常可以在
Visual Basic客户中得到处理。不再有 HRESULTs 或者 ISupportErrorInfo 接口。
尽管跨语言异常处理的覆盖面很广,但这一章完全集中讨论C#异常处理。你稍为改变编译器的溢出处理行为,接着有
趣的事情就开始了:你处理了该异常。要增加更多的手段,随后引发你所创建的异常。

7.1 校验(checked)和非校验(unchecked)语句
当你执行运算时,有可能会发生计算结果超出结果变量数据类型的有效范围。这种情况被称为溢出,依据不同的编程
语言,你将被以某种方式通知——或者根本就没有被通知。(C++程序员听起来熟悉吗?)
那么,C#如何处理溢出的呢? 要找出其默认行为,请看我在这本书前面提到的阶乘的例子。(为了方便其见,前面
的例子再次在清单 7.1 中给出)

清单 7.1 计算一个数的阶乘

1: using System;
2: 
3: class Factorial
4: {
5: public static void Main(string[] args)
6: {
7: long nFactorial = 1;
8: long nComputeTo = Int64.Parse(args[0]);
9: 
10: long nCurDig = 1;
11: for (nCurDig=1;nCurDig <= nComputeTo; nCurDig++)
12: nFactorial *= nCurDig;
13: 
14: Console.WriteLine("{0}! is {1}",nComputeTo, nFactorial);
15: }
16: }

当你象这样使用命令行执行程序时
factorial 2000

结果为0,什么也没有发生。因此,设想C#默默地处理溢出情况而不明确地警告你是安全的。
通过给整个应用程序(经编译器开关)或于语句级允许溢出校验,你就可以改变这种行为。以下两节分别解决一种方
案。
7.1.1 给溢出校验设置编译器
如果你想给整个应用程序控制溢出校验,C#编译器设置选择是正是你所要找的。默认地,溢出校验是禁用的。要明确
地要求它,运行以下编译器命令:
csc factorial.cs /checked+

现在当你用2000参数执行应用程序时,CLR通知你溢出异常(见图 7.1)。

图 7.1 允许了溢出异常,阶乘代码产生了一个异常。

  按OK键离开对话框揭示了异常信息:
Exception occurred: System.OverflowException
at Factorial.Main(System.String[])

  现在你了解了溢出条件引发了一个 System.OverflowException异常。下一节,在我们完成语法校验之后,如何捕获并
处理所出现的异常?
7.1.2 语法溢出校验
  如果你不想给整个应用程序允许溢出校验,仅给某些代码段允许校验,你可能会很舒适。对于这种场合,你可能象清
单7.2中显示的那样,使用校验语句。

清单 7.2  阶乘计算中的溢出校验

1: using System;
2: 
3: class Factorial
4: {
5: public static void Main(string[] args)
6: {
7: long nFactorial = 1;
8: long nComputeTo = Int64.Parse(args[0]);
9: 
10: long nCurDig = 1;
11: 
12: for (nCurDig=1;nCurDig <= nComputeTo; nCurDig++)
13: checked { nFactorial *= nCurDig; }
14: 
15: Console.WriteLine("{0}! is {1}",nComputeTo, nFactorial);
16: }
17: }

  甚至就如你运用标志 checked-编译了该代码,在第13行中,溢出校验仍然会对乘法实现检查。错误信息保持一致。

  显示相反行为的语句是非校验(unchecked )。甚至如果允许了溢出校验(给编译器加上checked+标志),被
unchecked 语句所括住的代码也将不会引发溢出异常:

相关文章

功盖三分国(功盖三分国是谁写的)

功盖三分国(功盖三分国是谁写的) 杜甫有两首写诸葛亮而非常有名的诗,一首是《蜀相》,一首是《八阵图》。 写前一首时,杜甫刚结束了长达四年的颠沛流离生活之后,从秦州、同谷移居四川成都,在朋友的帮助之...

理科女生学什么专业好,前景比较好的几个专业

理科女生学什么专业好,前景比较好的几个专业

报考大学选择一个什么专业关系到毕业后在什么领域就业,虽说毕业后不一定从事相关工作,但专业选择也很重要,下面小编整理了2017最新理科女生热门专业,希望对您有所帮助。 IT行业 IT可谓是时下最...

微信聊天记录删除还原24小时接单的黑客免费接单黑客QQ

京东商品搜索引擎是搜索推荐部自主研发的商品搜索引擎,主要功能是为海量京东用户提供精准、快速的购物体验。虽然只有短短几年的时间,我们的搜索引擎已经经过了多次618店庆和双11的考验,目前已经能够与人们日...

黑客真的能追回网赌输的钱吗(黑客追回)-许多黑客都利用系统和软件

黑客真的能追回网赌输的钱吗(黑客追回)-许多黑客都利用系统和软件

黑客真的能追回网赌输的钱吗(黑客追回)(tiechemo.com)一直致力于黑客(HACK)技术、黑客QQ群、信息安全、web安全、渗透运维、黑客工具、找黑客、黑客联系方式、24小时在线网络黑客、黑客...

自来水一吨多少立方米(3吨水多少立方米)

据史料记载,早在春秋战国时期,著名的思想家孔子就提出了“水可以载舟,也可以覆舟”的观点。唐朝时,唐朝的一位官员魏徵说:“怨恨不大,但是很可怕;载着一艘船,把它掀翻,我们要小心“规劝唐太宗要尊重人民的心...

被和谐是什么意思?怎么防止资源被和谐

被和谐是什么意思?怎么防止资源被和谐

这是一个“战火纷飞的年代”,有些东西总会在不经意间被扼杀在摇篮里,而且作为高科技技术化部队之间的交流,必须要保密中途传输的文件,哪怕被敌方拦截下,也让敌方摸不着头脑,一起来试试看吧! 需要用到的程序...