第14章 异常处理和跟踪调试.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第14章 异常处理和跟踪调试

第14章 异常处理与跟踪调试 在程序编制的过程中,总是没有办法避免错误,然而,对于使用方法引发的错误要在程序的执行过程中尽可能做出处理,以便使我们说的异常处理;另外,对于每个比较大的软件来说,在程序测试的过程中往往会出现错误,但是,查找错误的位置要比改正错误难得多,所以,对于一个开发平台,C#提供了多种调试方法。本章简单了解异常处理与跟踪调试。 14.1 异常处理 在任何情况下,程序都不能是完美无缺,毫无错误的,所以在程序的编制过程中,程序都必须能处理可能出现的错误,C#提供处理错误的机制,即使用异常类Exception为每种错误提供定制的处理,并把识别错误的代码和处理错误的代码分离开来。C#提供的结构化处理异常的方法,使用try语句提供的控制结构检测代码中的异常并做出相应的处理。try语句有三种方式: 用try-catch 捕获异常 用try-finally 清除异常 用try-catch-finally 处理所有的异常 14.1.1 try-catch捕获异常 正常情况下,程序流进入try控制块,如果没有错误发生,就会正常操作。当程序流离开try控制块后,如果没有发生错误,将执行catch后的finally语句块或顺序执行;当执行try时发生错误,程序留就会跳转到相应的catch语句块。如【例14-1】。 【例14-1】在TextBox控件中接受两个数,计算它们的商。 该例中需要从利用TextBox的Text属性接受数字,因为Text属性值描述的类型为字符串型,所以在程序运行的过程中,可能引发异常;另外,除数不能为0,否则,引发异常。程序的界面设置如图14-1。 图14-1 界面设计 图14-2 由a引发的异常 “计算a/b”的代码如下: private void button1_Click(object sender, System.EventArgs e) { int a=1,b=1, c=1; try{ a=Convert.ToInt32(textBox1.Text);} catch{ MessageBox.Show(请将a的值输入为数字); return;} try{ b=Convert.ToInt32(textBox2.Text); } catch {MessageBox.Show(请将b的值输入为数字); return;} try { c=a/b; } catch(DivideByZeroException) { MessageBox.Show(除数不能为0 ); return; } MessageBox.Show(整数a与整数b的商为+c.ToString()); } 图14-3 由b引发的异常 图14-4 除数为0的异常 图14-5 正常情况 程序的运行结果: ① 当在textBox1中输入不是数字时,入图14-3,引发下面的异常: catch{ MessageBox.Show(请将a的值输入为数字); return;} ② 当在textBox2中输入不是数字时,入图14-4,引发下面的异常: catch{ MessageBox.Show(请将b的值输入为数字); return;} ③ 当在textBox2中输入数据为0时,将引发除数不能为0的异常,如图14-4。 ④ 正常情况下,结果为两个数相除得到的整数,如图14-5所示。 14.1.2 try-finally 清除异常 如果你关心清除异常而不是错误处理,try-finally清除异常能帮助你实现。它不仅抑制了出错消息,而且所有包含在finally 块中的代码在异常被引发后仍然会被执行。 尽管程序不正常终止,但你还可以为用户获取一条消息,如【例14-2】 【例14-2】检查文件是否存在,退出时显示“谢谢您使用本软件”。 本例中检查文件的存在与否,使用try-finally清除异常实现消息的显示。当文件存在时运行结果如图14-6所示;当文件不存在时运行结果如图14-7所示。代码如下: private void button1_Click(object sender, System.EventArgs e) { try { if(File.Exists(textBox1.Text)) { label2.Text=该文件存在;} el

文档评论(0)

sy78219 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档