- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《Java学习总结之第八章_异常处理》.doc
Java学习总结之第八章 异常处理
一、Java异常处理机制概述
1、Java虚拟机用方法调用栈来跟踪每个线程中一系列的方法调用过程。
2、方法中的代码块可能抛出异常,有如下两种处理办法:
l 在当前方法中通过try…catch语句捕获并处理异常。例如:
public void methodA(int money){
try{
//以下代码可能会抛出SpecialException
if(--money = 0)
throw new SpecialException(Out of money);
}
catch(SpecialException e){
//异常处理
}
}
l 在方法的声明处通过throws语句声明抛出异常,返回给调用者来处理异常例如:
由于方法A不能捕获异常,所以,A就要通过throws语句声明抛出异常,由调用者methodB()来处理异常
public void methodA(int money)throws SpecialException{
//以下代码会抛出SpecialException
if(--money = 0)
throw new SpecialException(Out of money);
}
此时methodB()的定义如下:
public void methodB(int money){
try{
methodA(money);
}
catch(SpecialException e){
//处理异常
}
}
如果methodB()也没有捕获SpecialException,而是声明抛出该异常,则Java虚拟机的处理流程将退回到methodB()方法的调用者,此时methonB()方法的定义如下:
public void methodB(int money)throws SpecialException{
methodA(money);
}
3、当Java虚拟机追溯到调用栈的底部的方法时,如果仍然没有找到处理该异常的代码块,将按以下步骤处理:
l 调用异常对象的printStackTrace()方法,打印来自方法调用栈的异常信息。
l 如果该线程不是主线程,那么终止这个线程,其他线程继续正常运行。如果该线程是主线程(即方法调用栈的底部为main()方法),那么整个应用程序被终止。
二、运用Java异常处理机制
1、在Java语言中,用try…catch语句来捕获异常,格式如下:
try{
//可能会出现异常的代码
}
catch(SQLException e){
//处理操纵数据库出现的异常
}
catch(IOException e){
//处理操纵输入流和输出流出现的异常
}
2、finally语句中的代码是在异常处理的任何情况下都必须执行的代码。finally代码块能保证特定的操作总是会被执行,它的形式如下:
try{
//可能会出现异常的代码
}
catch(Exception e){
//处理异常
}
finally{
//特定的操作
}
3、不管try代码块中是否出现异常,都会执行finally代码块。
4、如果一个可能会出现异常,但没有能力处理这种异常,可以在方法声明处用throws子句来声明抛出异常。一个方法可能会出现多种异常,throws子句允许声明抛出多个异常,例如:
public void method()throws SQLException,IOException{…}
5、throw语句用于抛出异常,由throw语句抛出的对象必须是java.lang.Throwable类或者其子类的实例。
6、异常处理语句的语法规则:
l try代码块不能脱离catch代码块或finally代码块而单独存在。try代码块后面至少有一个catch代码块或finally代码块。
l try代码块后面可以有零个或多个catch代码块,还可以有零个或至多一个finally代码块。如果catch代码块和finally代码块并在,finally代码块必须在catch代码块后面。
l try代码块后面可以只跟finally代码块。
l 在try代码块中定义的变量的作用域为try代码块,在catch代码块和finally代码块中不能访问该变量。
l 当try代码块后面有多个catch代码块时,Java虚拟机会把实际抛出的异常对象依次和各个catch代码块声明的异常类型匹配,如果异常对象为某个异常类型或其子类的实例,就执行这个catch代码块,而不会再执行其他的catch代码块。
l 如果一个检查异常,要么用try…catch语句捕获,要么用throws语句声明将它抛出,否则会导致编译错误。
l throws语句后面不允许紧跟其他语句,因为这些语句永远不会被执行
您可能关注的文档
最近下载
- 贵州省2024年高职(专科)分类考试招生中职毕业生文化综合考试数学.docx VIP
- HP DeskJet 2700 多功能一体打印机中文说明书.pdf
- (完整版)2025年全国自考《马克思主义基本原理概论》真题及答案汇总.docx VIP
- 欧科PT300变频器说明书.pdf
- 全版《边城》ppt课件.pptx VIP
- 2-5《无常》(思维导图) 统编版七年级语文上册大单元教学.docx VIP
- 2025年辅警招聘考试试题库及答案详解(各地真题).docx
- 在泥沙中崛起三门峡(连载3).doc VIP
- 高龄患者的麻醉要点.ppt VIP
- 天安人寿附加吉祥树终身重大疾病保险条款0101.docx VIP
文档评论(0)