




已阅读5页,还剩15页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第11章 异常处理与部署应用程序,信息管理与信息系统班,14.1.1 用trycatch语句捕获异常 正常情况下,程序流进入try控制块,如果没有错误发生,就会正常操作。当程序流离开try控制块后,如果没有发生错误,将执行catch后的finally语句块或顺序执行;当执行try时发生错误,程序流就会跳转到相应的catch语句块。,11.1 异常处理,【例11-1】trycatch语句结构使用示例。在TextBox控件中接收两个数,单击【计算】按钮,显示这两个数的商。 要求使用trycatch语句结构识别并处理由除数或被除数为非数字引发的异常、由除数为零引发的异常。,【计算】按钮被单击时执行的事件过程代码如下: 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); catch label3 .Text =“提示:请将除数的值输入为数字!“; return; try c = a / b; catch (DivideByZeroException) / 如果发生除数为0的异常 label3 .Text =“提示:除数不能为!“; return; / 正确运行时显示运算结果 label3.Text = “两数的商为:“+c.ToString(); ,11.1.2 用tryfinally语句清除异常 有时可能希望在程序运行时,要求清除异常而不是错误处理。若希望使程序在出现异常时继续执行,且不显示出错信息。 此时可以使用try-finally语句实现清除异常。它不仅抑制了出错消息,而且所有包含在finally块中的代码在异常被引发后仍然会被执行。 【例14-2】设计一个Windows应用程序,用来检查指定文件是否存在。要求无论文件存在与否,程序均能正常结束并显示“感谢使用本软件”的信息框。,文件存在或不存在的程序运行结果,【检查】按钮被单击时执行的事件过程代码如下: private void button1_Click(object sender, EventArgs e) try / 判断文件是否存在 if (File.Exists(textBox1.Text) label2.Text = “该文件存在“; else label2.Text = “该文件不存在“; finally / 无论是否发生异常,都正常结束 MessageBox.Show(“感谢使用本软件!“,“程序结束“); ,11.1.3 trycatchfinally语句结构 前面介绍的trycatch结构和tryfinally结构分别用来捕获处理异常和清除异常。本节介绍的trycatchfinally结构能将上述二者结合起来,使之成为一个整体。 【例14-3】在【例14-1】的基础上修改【计算】按钮单击事件过程的代码如下:,private void button1_Click(object sender, EventArgs e) int a, b , c; try / 试图捕获异常 / 将文本转换为Int32类型的整数 a = Convert.ToInt32(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 抛出异常和常用异常类 1. 抛出异常 在程序设计时可能需要有意的引发某种异常,以测试程序在不同状态下的运行情况。Visual Sdudio 2005提供的throw方法就是专门用于人为引发异常的。 通常将这种主要用于测试程序的、能够自动引发异常的方法称为“抛出异常”。 例如下列代码将在程序运行时引发一个除数为零的异常。 throw new DivideByZeroException();,2. 常用的异常类 MemberAccessException:访问错误:类型成员不能被访问 ArgumentException :参数错误:方法的参数无效 ArgumentNullException :参数为空:给方法传递一个不可接受的空参数 ArithmeticException :数学计算错误:由于数学运算导致的异常,覆盖面广 ArrayTypeMismatchException :数组类型不匹配 DivideByZeroException :被零除 FormatException:参数的格式不正确 IndexOutOfRangeException :索引超出范围,小于0或比最后一个元素的索引还大,InvalidCastException :非法强制转换,在显式转换失败时引发 MulticastNotSupportedException :不支持的组播:组合两个非空委派失败时引发 NotSupportedException :调用的方法在类中没有实现 NullReferenceException :引用空引用对象时引发 OutOfMemoryException :无法为新语句分配内存时引发,内存不足 OverflowException :溢出 StackOverflowException:栈溢出 TypeInitializationException:错误的初始化类型:静态构造函数有问题时引发 NotFiniteNumberException:无限大的值:数字不合法,11.1.5 用户自定义异常 对于某些特殊情况,程序员可以通过继承Exception来创建自己的异常类。 声明一个异常类的语法格式如下: class ExceptionName:Exception 引发自定义异常的格式如下: throw(ExceptionName);,11.2 部署Windows应用程序,11.2.1 生成安装包 打开设计完成的项目,“文件”菜单“添加”下的“新建项目”命令。在对话框“项目类型”列表中选择“安装和部署”,在模板列表中选择“安装向导”,单击【确定】按钮启动“安装项目向导”。 在“欢迎”界面中直接单击【下一步】按钮,在对话框中选择“为Windows应用程序创建一个安装程序”后单击【下一步】按钮。,在 “选择要包含的项目输出”对话框中选择需要包含的内容(至少要包含“主输出”)单击【下一步】按钮。在对话框中单击【添加】按钮可将希望包含到安装项目中的一些辅助文件添加到安装包。 向导结束后将自动进入 “文件系统”窗口,单击【应用程序】文件夹可以看到前面添加到其中的主程序和附加文件。 鼠标指向窗口中“用户的程序菜单”单击右键,在弹出的快捷菜单中执行“添加”项下的“文件夹”命令,使安装程序能够在Windows“开始”菜单中创建一个目录。 选择新创建的文件夹,在文件夹内容窗格中单击右键,在弹出的快捷菜单中执行“创建新的快捷方式”命令。在打开的对话框中选择“应用程序文件”中的“主输出”(主程序)后单击【确定】按钮。,11.2.2 编译安装项目 所有设置结束后,可在Visual Stud
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 安徽省2025年中考道德与法治试题真题及答案
- 城市轨道交通供配电技术专业教学标准(高等职业教育专科)2025修订
- 退城入园预焙阳极项目建设可行性研究报告
- 2025年中国金属墙系统行业市场全景分析及前景机遇研判报告
- 中国pp树脂行业市场调查报告
- 中国机动车尾气治理行业市场调研及投资规划建议报告
- 2024年中国再生纤维行业发展监测调查报告
- 中国书写工具行业市场深度调查及发展前景研究预测报告
- 2025年中国速冻猕猴桃原浆行业市场发展前景及发展趋势与投资战略研究报告
- 驻场线上培训课件
- 分组密码的攻击方法与实例分析
- 《现代汉语》考试复习题库及答案
- 关于幼儿园沙水区自主游戏探究的论文
- (完整word)软件验收单
- 梦幻西游翰墨之道全
- 享受低保证明
- 执业药师 中药一笔记
- 新科hg5300功放说明书
- 调取气象数据申请书
- 维修方案与MSG-3课件
- 2023-2024学年湖南省常德市小学语文六年级期末评估试卷附参考答案和详细解析
评论
0/150
提交评论