- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 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
您可能关注的文档
最近下载
- ASMR简单介绍课件.pptx
- 瞭望&光大:2023商业银行数据资产估值白皮书.pdf VIP
- 2025年山西林业职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- 艾滋病合并肺孢子菌肺炎诊疗专家共识(2024年版).pptx VIP
- 2024年山西电力职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- 影视项目可行性研究报告.docx VIP
- 2024年山西职业技术学院单招职业适应性测试模拟试题及答案解析.docx VIP
- 十一人制足球规则.ppt VIP
- 中考语文阅读理解《石矶娘娘是什么岩石》含答案解析.docx VIP
- [特种设备高级考试]第四,五章 磁粉检测的器材和设备.pdf
原创力文档


文档评论(0)