- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
* 第 十三 章 异 常 C#语言程序设计 河北理工大学 * 异常处理 程序经常会有这样或那样的错误,比如参数格式有误,或者是变量超出范围等。因此,编程语言一般要有异常处理。 * 异常与异常类 当代码出现诸如除数为零、分配空间失败等错误时,就会自动创建异常对象,它们大多是C#异常类的实例。System.Exception类是异常类的基类,一般不要直接使用System.Exception,它没有反映具体的异常信息,而是一般用它的派生类。 * * 经常使用的C#异常类: * System.Exception提供了一些了解异常信息的属性: * 捕获异常 (1)代码要放到一个try块中(try是一个关键字)。代码运行时,它会尝试执行try块中的所有语句。如果没有任何语句产生一个异常,那么所有语句都会运行。然而一旦出现异常,就会跳出try块,并进入一个catch处理程序中执行。 * (2)在try块之后紧接着写一个或多个catch处理程序(catch是一个关键字),用它们处理可能发生的所有错误。try块中的任何语句造成错误,运行库都会生成并抛出一个异常。然后运行库将检查try块之后的catch处理程序,将控制权直接移交给一个相匹配的处理程序。 * class Program { public static void Main() { // 有可能发生异常的语句放入到try语句中 try { int x = 5; int y = 0; int z = x/y; // 异常,除数为0 Console.WriteLine(z); // 不再执行 } * // try语句发生异常将跳转catch块 catch(DivideByZeroException ex) { Console.WriteLine( Exception message is : {0} , ex.Message); } * catch处理程序采用与方法参数相似的语法来指定要捕捉的异常。在上例中,抛出一个DivideByZeroException时,ex变量中将填充一个对象,对象中包含了异常的细节。异常类中提供了多个属性以供检查,以便你确定造成异常的确切原因。例如,Message包含一段文本描述,它指出是什么错误造成了异常。 * 抛出异常 异常的发生有两种可能:代码执行过程中满足了异常的条件而使程序无法正常运行下去;通过throw语句无条件抛出异常。 第一种情况上面已经介绍过了。第二种情况则与第一种情况完全相反,通过throw语句主动在程序中抛出异常,抛出的异常要用catch语句捕获,否则程序运行将中断。 * throw语句用法: throw expression throw 语句抛出的异常表达式expression必须表示一个 System.Exception 类型或它的派生类。 抛出异常 * 抛出异常 public static void Div(int x,int y) { if (y == 0) throw new ArithmeticException(除数为0); int z = x / y; Console.WriteLine(z); } * 未处理的异常 如果一个try块抛出一个异常,但没有对应的catch处理程序,那么会发生什么?? 如果try块是某个方法的一部分,那么方法将结束,并返回发出调用的方法。如果发出调用的方法使用了一个try块,那么运行库将尝试定位try块之后的一个相匹配的catch处理程序,并执行它。如果发出调用的方法没有使用try块,或者没有找到匹配的catch处理程序,发出调用的方法将终止,并返回它自己的调用者。 * 未处理的异常 由内向外遍历了所有调用方法之后,假如运行库找不到一个相匹配的catch处理程序,整个程序就会终止,并报告一个未处理的异常。 如果最终找到一个匹配的catch处理程序,它就会运行,然后从捕捉方法的catch处理程序之后的第一个语句继续执行。这个catch处理程序是实际捕捉异常的catch块。程序控制不会返回当初造成异常的方法。 * 使用多个catch处理程序 通过前面的讨论知道不同的错误可能抛出不同类型的异常。为了解决这个问题可以提供多个catch处理程序。所有catch处理程序应依次列出。 try {…} catch (ArgumentExcepti
您可能关注的文档
- 电机华电貌似要考13.同步发电机的不对称运行.ppt
- 高分5U2Unit2Period4章节.pptx
- 电机华电貌似要考14.同步发电机的三相突然短路.ppt
- 电机华电貌似要考复件11.同步发电机的并联运行.ppt
- 电机华电貌似要考复件212.同步电动机和同步调相机.ppt
- 电机及拖动电子教案教学课件作者第3版教学课件作者许晓峰第1章节直流电机课件.ppt
- 高分5U3Unit3Period1章节.pptx
- 电机及拖动电子教案教学课件作者第3版教学课件作者许晓峰第1章直流电机.ppt
- 电机及拖动电子教案教学课件作者第3版教学课件作者许晓峰第2章节直流电机电力拖动课件.PPT
- 高分5U3Unit3Period2章节.pptx
文档评论(0)