版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
异常处理本讲要点学习目标掌握抛出异常、自定义异常理解异常处理机制、异常处理方式了解异常的定义、异常处理的特点重点掌握异常处理的使用方法定义自己的异常类难点异常处理的正确使用,即异常处理的条件异常处理的概念异常(Exception):指由于程序运行时发生的错误,从而导致程序错误结束。异常处理:当程序运行过程中发生了某个异常现象,系统将产生一个相应的异常类对象,并把它交给系统处理,系统负责找到处理错误的代码并执行之。
如:{输入数据x;5/x;}如果输入X的值为0,产生异常。{输入数据x;if(x==0){提示输入数据有误;}else5/x;每种异常类型都是一个类分为两类:
System.SystemException
System.ApplicationException代码段有可能发生异常的时候,我们应该把该代码放置在try中.
捕捉到异常后的处理方法放置到catch中。为每个可能的Exception定制解决方法,例如:
try
{
..........
}catch(FormatException)
{
MessageBox.Show("......");
}catch(overflowException)
{
MessageBox.Show("......");
}catch(Exceptionex)
{
MessageBox.Show("......");
}
执行完catch字句后,程序将继续执行,除后catch字句中有return,throw或者exit.
必须正确排列捕获异常的catch字句
范围小的Exception放在前面的catch字句中,
如果Exception之间有继承关系,把子类放在前面的catch字句中,把父类放到后面的catch字句中。最后放置catch(Exceptionex)。使用try-catch-finally来确保一些收尾工作(finally段里的语句总是在try和catch之后执行
),例如:
try
{
<<opendatabaseconnection>>
<<performdatabasework>>
}catch
{
<<dealwithanyexception>>
}
finally
{
<<closedatabase>>
}异常之体系异常类一、基类Exception异常类二、常见的异常类1、SystemException类:该类是System命名空间中所有其他异常类的基类。(建议:公共语言运行时引发的异常通常用此类)2、ApplicationException类:该类表示应用程序发生非致命错误时所引发的异常(建议:应用程序自身引发的异常通常用此异常类三、与参数有关的异常类
此类异常类均派生于SystemException,用于处理给方法成员传递的参数时发生异常1、ArgumentException类:该类用于处理参数无效的异常,除了继承来的属性名,此类还提供了string类型的属性ParamName表示引发异常的参数名称。2、FormatException类:该类用于处理参数格式错误的异常。
异常处理语句的使用格式1:try-catch语句
try语句块中包含可能产生异常的代码,catch中指定对异常的处理class
trycatchstatement{
public
voidtest(){
try{
intb=int.Parse("abc");}
catch(FormatExceptionex){
Console.WriteLine(ex.Message);}}}格式2:try-finally语句
try语句块包含可能产生异常的代码finally中指定最终都要执行的子语句与格式1比较,程序不提供对异常的处理,只保证finally语句块中的代码一定被执行class
trycatchstatement{
public
voidtest(){
try{
intb=int.Parse("abc");}
finally{
Console.WriteLine("执行结束");}}}格式3:try-catch-finally(常用格式)try语句块中包含可能产生异常的代码,catch中指定对异常的处理,finally中指定最终都要执行的子语句,放在所有catch后,只能出现一次class
trycatchstatement{
public
voidtest(){
try{
intb=int.Parse("abc");}
catch(FormatExceptionex){
Console.WriteLine(ex.Message);} finally
{
Console.WriteLine("执行结束");
} }}throw语句throw语句可以重新引发一个已捕获的异常,还可以引发一个预定义的或自定义的异常,可被外围的try语句接收,throw引发的异常称为显示引发异常class
trycatchstatement{
public
voidtest(){
try{
intb=int.Parse("abc");
stringstr=null;
if(str=null){
ArgumentExceptionex=new
ArgumentNullException();
throwex;}}
catch(ArgumentExceptionex){
Console.WriteLine(ex.Message);}
finally{
Console.WriteLine("执行结束");}}}0自定义异常除了可以使用系统预定义的异常以为,还可以根据需要自己定义异常。由Exception或者Exception类的子类派生。
步骤:1.自定义异常类,继承自某个异常2.重写构造函数和属性(Message属性),或者声明方法3.在可能出现问题的地方调用class
ageexception
:
Exception{
string_message;
//获得父类的错误信息内容
publicageexception(){_message=base.Message;}
publicageexception(stringstrmessage){_message=strmessage;}
//重写message属性
public
override
stringMessage{
get{
return_message;}}
//或者定义方法输出异常信息
public
voidpm(){
Console.WriteLine(_message);}}try{
Console.WriteLine("请输入年龄");
intage=int.Parse(Console.ReadLine());
if(age>20||age<10){
stringmessage="你输入的年纪不符合要求!";
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 钢筋施工职业健康管理方案
- 脚手架施工中事故隐患评估方案
- 2026年及未来5年中国团购行业市场调查研究及发展趋势预测报告
- 给水管网延伸建设方案
- 未来五年冷冻鲳鱼企业ESG实践与创新战略分析研究报告
- 未来五年稚龟种苗企业ESG实践与创新战略分析研究报告
- 施工现场物流与设备管理方案
- 施工现场应急预案制定方案
- 2025至2030中国预制菜市场消费趋势与品牌竞争策略研究报告
- 2025-2030新材料产业技术创新与投资布局研究报告
- 宠物行为问题诊断与解决
- 2025年大学大一(中国文化史)历史发展阶段测试题及答案
- 豆豆钱解协议书
- 肝内胆管癌护理查房
- 新生儿护理技能与并发症预防
- 交易合同都保密协议
- 肺结核诊疗指南(2025版)
- 公立医院绩效考核方案细则
- 2025福建福州工业园区开发集团有限公司招聘4人考试备考题库及答案解析
- 公司一把手讲安全课件
- 2025~2026学年天津市和平区八年级上学期期中考试英语试卷
评论
0/150
提交评论