版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第8章
异常处理
本章要点:
异常处理的基本概念
try…catch…finally结构
C#中的异常类
用户自定义异常8.1循序渐进学理论
8.1.1异常处理概念
【例8-1】编写一个除法计算器,计算器的设计界面如图8-1所示。程序运行时,输入被除数和除数后按【计算】按钮将会把运算结果显示在【结果】后面的文本框中,如图8-2所示。要求程序能够识别出除数为零的错误并给出提示信息,如图8-3所示。图8-1程序设计界面
图8-2程序正常运行界面
图8-3除数为零的情况
8.1.2捕获处理异常
[格式]:try{
语句组1; //程序中需要执行的语句}catch(异常1) //发生了“异常1”指定的异常{
语句组2; //执行该异常处理}……catch(异常n) //发生了“异常n”指定的异常{
语句组n; //执行该异常处理}finally //必做的自理{语句组n+1; //该语句块一定被执行,无论是否产生异常}【例8-2】对例8-1进行改造使之能够捕获到除数为零的异常(只对整数产生,对于实数结果为无穷大)、输入数据格式不正确的异常以及其它所有异常。图8-4~图8-6是发生了几种异常情况时的程序运行界面。图8-4除数为0异常
图8-5不能转换为整型的异常
图8-6其它异常
8.1.3C#的异常类
在C#中,所有的异常都派生于Exception类,该类包含在公共语言运行库中。该类有两个重要的属性,如下:(1)Message属性:该属性是只读属性,包含对异常原因的描述信息。(2)InnerException属性:该属性也是一个只读属性,它包含这个异常的“内部异常”。
8.1.4抛出和重发异常
1.抛出异常用户自己产生并抛出异常需要使用throw语句。[格式1]:throw[格式2]:throw异常对象
【例8-3】在“除法计算器”中对输入的除数进行判断,如果除数为0则主动抛出“除数为零”的异常。除数为“0”时的程序运行界面如图8-7所示。图8-7除数为0时的程序运行界面
2.重发异常
当发生异常后,可以在catch语句中对异常进行捕获,然后进行处理,处理过程还可以通过throw语句把异常重发给调用者。
【例8-4】用函数实现除法计算器的功能。如果发现除数为零,则把结果默认为整数的最大值。同时程序显示出“执行结果不可靠”的提示信息。程序的运行界面如图8-8所示。图8-8除数为0时的运行界面
【例8-5】对例8-4进行改进,使主调方法中能够显示出在被调方法中发生的异常是何种异常,发生异常时的程序运行界面如图8-9所示。图8-9除数为0时的运行界面
8.1.5checked和unchecked运算符的用法
C#提供了checked和unchecked运算符,指定是否检查整型算术运算的溢出。
checked运算符的格式如下。[格式]:checked(整型算术表达式)unchecked运算符的格式如下。[格式]:unchecked(整型算术表达式)
注意:不但算术运算会产生溢出,整型数据类型之间的显式转换也会导致溢出。例如,将整数1000000从int转换为short会导致溢出,因为short类型的数值可以保存的最大值是32767。
【例8-6】编写一个整型加法计算器,如果运算结果超出了整数的表示范围则发生溢出异常并对之进行捕获。程序的设计界面如图8-10所示,程序的运行界面如图8-11所示。图8-10程序设计界面
图8-11溢出时的程序运行界面
8.2典型实例练能力
8.2.1典型实例一:异常处理的综合演示【实例题目】编写一个控制台程序,程序名为divpro,程序的功能是求两个整数的商。要求程序运行情况如下:(1)如果以命令行“divpro105”的形式运行,将出现正常结果,显示“10除5的商为:2”。(2)如果以命令行“divpro”、“divpro10”的形式运行,将出现提示信息:“输入参数不够”。(3)如果以命令行“divpro
abcd”或“divpro10asdhjk”的形式运行,将出现提示信息:“输入字符串的格式不正确”。(4)如果以命令行“divpro100”的形式运行,将出现提示信息:“试图除以零”。(5)如果以命令行“divpro3276898765872”或“divpro2327689876587”的形式运行,将出现提示信息:“值
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026安徽阜阳市界首农商银行春季校园招聘6人备考题库附答案详解(研优卷)
- 2026贵州黔西南州兴仁市潘家庄镇人民政府招聘专职消防人员4人备考题库及参考答案详解
- 2026广东佛山顺德区大良顺峰初级中学招聘财务人员1人备考题库(含答案详解)
- 无人机行业应用(航测)电子教案 1.12 像控点的样式
- 2026江西南昌大学抚州医学院招聘编外合同制科研助理1人备考题库含答案详解(研优卷)
- 2026中国科学院广州地球化学研究所党务综合管理岗招聘1人备考题库含答案详解(能力提升)
- 2026宁麓置地(宁波)有限公司招聘7人备考题库及答案详解参考
- 2026广东肇庆市端州区人民医院招贤纳士招聘13人备考题库附答案详解
- 2026福建福州市鼓楼区城市管理综合执法大队安泰中队招聘2人备考题库带答案详解(完整版)
- 2026浙江宁波市鄞州区钟公庙街道办事处编外人员招聘4人备考题库附答案详解(突破训练)
- 电商店铺归属协议书
- 2025四川蜀道资本控股集团有限公司招聘15人笔试历年参考题库附带答案详解
- 南农《土壤学》课件
- 私有云平台安全事件应急预案
- 车用风扇罩注塑模具的结构设计与性能改进
- GB/T 45816-2025道路车辆汽车空调系统用制冷剂系统安全要求
- 自考《人力资源管理(一)00147》历年真题和答案
- 中药灌肠的课件
- 国家安全生产特种作业证件复审
- 脚手架围挡施工方案
- 《无人机飞行控制技术》全套教学课件
评论
0/150
提交评论