欢迎来到天天文库
浏览记录
ID:39394854
大小:487.00 KB
页数:20页
时间:2019-07-02
《异常处理和应用程序打包》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第11章异常处理与部署应用程序信息管理与信息系统班14.1.1用try…catch语句捕获异常正常情况下,程序流进入try控制块,如果没有错误发生,就会正常操作。当程序流离开try控制块后,如果没有发生错误,将执行catch后的finally语句块或顺序执行;当执行try时发生错误,程序流就会跳转到相应的catch语句块。11.1异常处理【例11-1】try…catch语句结构使用示例。在TextBox控件中接收两个数,单击【计算】按钮,显示这两个数的商。要求使用try…catch语句结构识别并处理由除数或被除数为非数字引发的异常、由除数为零引发的异常。【计算】按钮被
2、单击时执行的事件过程代码如下:privatevoidbutton1_Click(objectsender,EventArgse){inta,b,c;//声明变量try//试图捕获异常{//将文本转换为Int32类型的整数a=Convert.ToInt32(textBox1.Text);}catch//发生异常时的处理{label3.Text="提示:请将被除数的值输入为数字!";return;}try{b=Convert.ToInt32(textBox2.Text);}catch{label3.Text="提示:请将除数的值输入为数字!";return;}try{c=
3、a/b;}catch(DivideByZeroException)//如果发生除数为0的异常{label3.Text="提示:除数不能为0!";return;}//正确运行时显示运算结果label3.Text="两数的商为:"+c.ToString();}11.1.2用try…finally语句清除异常有时可能希望在程序运行时,要求清除异常而不是错误处理。若希望使程序在出现异常时继续执行,且不显示出错信息。此时可以使用try-finally语句实现清除异常。它不仅抑制了出错消息,而且所有包含在finally块中的代码在异常被引发后仍然会被执行。【例14-2】设计一个W
4、indows应用程序,用来检查指定文件是否存在。要求无论文件存在与否,程序均能正常结束并显示“感谢使用本软件”的信息框。文件存在或不存在的程序运行结果【检查】按钮被单击时执行的事件过程代码如下:privatevoidbutton1_Click(objectsender,EventArgse){try{//判断文件是否存在if(File.Exists(textBox1.Text)){label2.Text="该文件存在";}elselabel2.Text="该文件不存在";}finally//无论是否发生异常,都正常结束{MessageBox.Show("感谢使用本软件
5、!","程序结束");}}11.1.3try…catch…finally语句结构前面介绍的try…catch结构和try…finally结构分别用来捕获处理异常和清除异常。本节介绍的try…catch…finally结构能将上述二者结合起来,使之成为一个整体。【例14-3】在【例14-1】的基础上修改【计算】按钮单击事件过程的代码如下:privatevoidbutton1_Click(objectsender,EventArgse){inta,b,c;try//试图捕获异常{//将文本转换为Int32类型的整数a=Convert.ToInt32(textBox1.Te
6、xt);b=Convert.ToInt32(textBox2.Text);c=a/b;label3.Text="两数的商为:"+c.ToString();}catch(FormatException)//处理转换发生的异常{label3.Text="请将被除数或除数的值输入为数字!";}catch(DivideByZeroException)//处理除数为零的异常{label3.Text="除数不能为零!";}finally//清除异常{MessageBox.Show("感谢使用本软件,程序正常结束");}}11.1.4抛出异常和常用异常类1.抛出异常在程序设计时可能
7、需要有意的引发某种异常,以测试程序在不同状态下的运行情况。VisualSdudio2005提供的throw方法就是专门用于人为引发异常的。通常将这种主要用于测试程序的、能够自动引发异常的方法称为“抛出异常”。例如下列代码将在程序运行时引发一个除数为零的异常。thrownewDivideByZeroException();2.常用的异常类MemberAccessException:访问错误:类型成员不能被访问ArgumentException:参数错误:方法的参数无效ArgumentNullException:参数为空:给方法传递一个不可接受的空参数A
此文档下载收益归作者所有