异常处理和应用程序打包

上传人:艾力 文档编号:49574752 上传时间:2018-07-31 格式:PPT 页数:20 大小:487KB
返回 下载 相关 举报
异常处理和应用程序打包_第1页
第1页 / 共20页
异常处理和应用程序打包_第2页
第2页 / 共20页
异常处理和应用程序打包_第3页
第3页 / 共20页
异常处理和应用程序打包_第4页
第4页 / 共20页
异常处理和应用程序打包_第5页
第5页 / 共20页
点击查看更多>>
资源描述

《异常处理和应用程序打包》由会员分享,可在线阅读,更多相关《异常处理和应用程序打包(20页珍藏版)》请在金锄头文库上搜索。

1、第第1111章章 异常处理与部署应用程序异常处理与部署应用程序信息管理与信息系统班l14.1.1 用trycatch语句捕获异常正常情况下,程序流进入try控制块,如果没有错误发生 ,就会正常操作。当程序流离开try控制块后,如果没有发生 错误,将执行catch后的finally语句块或顺序执行;当执行try 时发生错误,程序流就会跳转到相应的catch语句块。11.1 11.1 异常处理异常处理【例11-1】trycatch语句结构使用示例。在TextBox控件中接收两个数,单击【计算】按钮,显示这两个数的商。要求使用trycatch语句结构识别并处理由除数或被除数为非数字引发的异常、由除数

2、为零引发的异常。 【计算】按钮被单击时执行的事件过程代码如下:private void button1_Click(object sender, EventArgs e)int a, b , c;/ 声明变量try / 试图捕获异常 / 将文本转换为Int32类型的整数a = Convert.ToInt32(textBox1.Text); catch / 发生异常时的处理 label3 .Text =“提示:请将被除数的值输入为数字!“;return;try b = Convert.ToInt32 (textBox2.Text); catchlabel3 .Text =“提示:请将除数的值输入

3、为数字!“;return; try c = a / b; catch (DivideByZeroException) / 如果发生除数为0的异常 label3 .Text =“提示:除数不能为!“;return; / 正确运行时显示运算结果label3.Text = “两数的商为:“+c.ToString(); l11.1.2 用tryfinally语句清除异常有时可能希望在程序运行时,要求清除异常而不是错误处理。 若希望使程序在出现异常时继续执行,且不显示出错信息。此时可以使用try-finally语句实现清除异常。它不仅抑制了出错 消息,而且所有包含在finally块中的代码在异常被引发后

4、仍然会被执行。【例14-2】设计一个Windows应用程序,用来检查指定文件是否存在。要求无论文件存在与否,程序均能正常结束并显示 “感谢使用本软件”的信息框。文件存在或不存在的程序运行结果 【检查】按钮被单击时执行的事件过程代码如下: private void button1_Click(object sender, EventArgs e) try / 判断文件是否存在if (File.Exists(textBox1.Text) label2.Text = “该文件存在“; elselabel2.Text = “该文件不存在“;finally / 无论是否发生异常,都正常结束Message

5、Box.Show(“感谢使用本软件!“,“程序结束“); l11.1.3 trycatchfinally语句结构l前面介绍的trycatch结构和tryfinally结构分别用来捕获 处理异常和清除异常。本节介绍的trycatchfinally结构能将上述二者结合起来,使之成为一个整体。l【例14-3】在【例14-1】的基础上修改【计算】按钮单击事件过程的代码如下:private void button1_Click(object sender, EventArgs e)int a, b , c;try / 试图捕获异常 / 将文本转换为Int32类型的整数a = Convert.ToInt3

6、2(textBox1.Text); 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 抛出异常和常用

7、异常类1. 抛出异常在程序设计时可能需要有意的引发某种异常,以测试程序在不 同状态下的运行情况。Visual Sdudio 2005提供的throw方法就是专门用于人为引发异常的。通常将这种主要用于测试程序的、能够自动引发异常的方法称 为“抛出异常”。例如下列代码将在程序运行时引发一个除数为零的异常。throw new DivideByZeroException();2. 常用的异常类 lMemberAccessException:访问错误:类型成员不能被访问lArgumentException :参数错误:方法的参数无效lArgumentNullException :参数为空:给方法传递一个

8、不可接受的空参数lArithmeticException :数学计算错误:由于数学运算导致的异常,覆盖面广lArrayTypeMismatchException :数组类型不匹配lDivideByZeroException :被零除lFormatException:参数的格式不正确 lIndexOutOfRangeException :索引超出范围,小于0或比最后一个元素的索引还大lInvalidCastException :非法强制转换,在显式转换失败时引发lMulticastNotSupportedException :不支持的组播:组合两个非空委派失败时引发lNotSupportedEx

9、ception :调用的方法在类中没有实现lNullReferenceException :引用空引用对象时引发lOutOfMemoryException :无法为新语句分配内存时引发,内存不足lOverflowException :溢出lStackOverflowException:栈溢出 lTypeInitializationException:错误的初始化类型:静态构造函数有问题时引发 lNotFiniteNumberException:无限大的值:数字不合法11.1.5 用户自定义异常对于某些特殊情况,程序员可以通过继承Exception来创建自己的异常类。声明一个异常类的语法格式如下

10、:class ExceptionName:Exception引发自定义异常的格式如下:throw(ExceptionName);11.2 部署Windows应用程序l11.2.1 生成安装包l打开设计完成的项目,“文件”菜单“添加”下的“新建项目”命 令。在对话框“项目类型”列表中选择“安装和部署”,在模板 列表中选择“安装向导”,单击【确定】按钮启动“安装项目 向导”。l在“欢迎”界面中直接单击【下一步】按钮,在对话框中选择 “为Windows应用程序创建一个安装程序”后单击【下一步】按钮。l在 “选择要包含的项目输出”对话框中选择需要包含的内容(至少要包含 “主输出”)单击【下一步】按钮。

11、在对话框中单击【添加】按钮可将希望包含到安装项目中的一些辅助文件添加到安装包。l向导结束后将自动进入 “文件系统”窗口,单击【应用程序】文件夹可以看到前面添加到其中的主程序和附加文件。l鼠标指向窗口中“用户的程序菜单”单击右键,在弹出的快捷菜单中执行“ 添加”项下的“文件夹”命令,使安装程序能够在Windows“开始”菜单中创建一个目录。l选择新创建的文件夹,在文件夹内容窗格中单击右键,在弹出的快捷菜 单中执行“创建新的快捷方式”命令。在打开的对话框中选择“应用程序文 件”中的“主输出”(主程序)后单击【确定】按钮。11.2.2 编译安装项目l所有设置结束后,可在Visual Studio 2005工具栏中解决方案 配置,由“Debug”(调试)改为“Release”(发布)。l选中安装项目名称,单击鼠标右键,在弹出的快捷菜单中执 行“生成”命令,就能得到编译打包过的,存放在源程序文件 夹下Release子文件夹中的安装文件Setup.exe文件。本章小结本章小结l本章通过一些小实例的分析和实现,讲解了C#中异常处理与 应用程序的部署。

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号