- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
07异常与调试
异常与调试
当程序遇到了非致命的错误,而不是编译时的语法错误。如要打开一个不存在的文件,要访问网络,数组越界等。
异常:是程序运行过程中发生的事件,该事件可以中断程序的正常执行流程。只要一出现异常,程序就会中断执行。
Java中的异常分为两大类:
错误(Error)是指JVM系统内部错误、内存溢出等严重情况。此时程序一定会退出,因为已经失去了运行所必须的物理环境。
违例(Exception)是指其他因编程错误或偶然的外在因素导致的问题。
错误我们无法处理,而违例则可以进行补救处理。我们一般说的异常就是指违例而言。
Java异常类层次
RuntimeException(运行时异常):未检查异常,由于程序员疏忽造成的并可避免的。我们可处理,可不处理。比如:类型转换、空指针、数组越界等。
异常处理的宗旨
返回到一个安全和已知的状态
能够使用户执行其他的命令
如果可能,则保持之前所以的工作
如果有必要,则安全推出避免造成进一步的伤害。
Java的异常处理机制
Java程序执行过程中如果出现异常,则系统会抛出一个相对应的异常类对象,然后交给运行时系统。
运行时系统会寻找对应的代码来处理这个异常,如果没有对应处理异常的代码,则系统将终止,相应的Java程序也推出。
Java异常的捕获
try{
可能出现异常的代码
}catch(需要处理的异常的名字1){
异常处理的代码
} catch(需要处理的异常的名字21){
异常处理的代码
}
……
但try代码中的程序产生异常时,系统会将异常发生的代码号、异常信息等封装到一个对应的异常对象中,并把这个对象交给catch代码进行处理。
异常信息的输出
e.getMessage();//打印出来是创建异常对象的时候,给定的参数
e.printStackTrace();//打印堆栈追踪信息
使用try…catch后,即使程序出现异常但之后的代码然后可以继续执行。但在try中出现异常后面的代码将不会继续执行。如果程序没有发生异常,则不会执行catch中的代码。
当一个try后面跟多个catch时,需要注意的是子类必须放在父类的前面。
使用finally块
try{
可能出现异常的代码
}catch(需要处理的异常的名字1){
异常处理的代码
} catch(需要处理的异常的名字21){
异常处理的代码
}
……
finally{
不论是否发生异常,都要执行的代码
}
如果出现异常,但catch没有捕获到,那finally中代码还会执行吗?
finally:即使在try和catch中使用了return语句退出当前方法,或使用break跳出某个循环时,相关的finally代码块还是要执行的。
只有一种情况finally代码块不会被执行,那就是System.exit(0);
另一种形式
try - finally :不捕获异常,当异常发生,返回上一级之前,但要运行finally中的代码
声明异常—throws
声明异常是Java中处理异常的第二种方式。
throws用于在方法的声明处使用,表示在此法中不处理异常,而是把异常交给了调用这个方法的调用者去处理。如果又多个异常,则使用逗号”,”分隔。
eg:public void doXX()throws IOExcption , SQLException
注意:
一个方法被覆盖时,覆盖它的方法必须抛出相同的异常或异常的子类
如果父类抛出了多个异常,那么重写方法必须抛出那些异常的一个子集。也就是说不能抛出新的异常。
抛出异常
抛出异常是指不是系统产生的异常,而是程序员认为的抛出某些异常。可以通过关键字—throw
eg:throw new XXException();
被抛出的必须是Throwable或其子类。
自定义异常
我们可以自己定义我们自己的异常类。自定义的异常必须继承Exception类。
(1)继承Exception类
(2)构造方法: 不带参数的构造方法, 带参数的构造方法:参数指出错误性质,super(message);把参数传递给父类构造异常
您可能关注的文档
- (2011-2012)CSCD期刊目录.pdf
- (人教版)常见成语辨析300例.doc
- (北师大版)四年级第一单位演习题(熟悉更大的数).doc
- (北师大版)三年级数学下册课件 轴对称图形 1.ppt
- (10年11月简)第六章 抗体制药.ppt
- (卷三)2011年司法测验《商法》之《公司法》考点汇总.doc
- (SONY)数码摄像机.doc
- (中医学)望舌.pdf
- (大华)嵌入式硬盘录像机说明书.doc
- (年检申报).doc
- 剧本杀行业报告:内容创作规范与剧本市场拓展策略.docx
- 剧本杀行业区域市场区域文化特色与市场潜力分析报告.docx
- 剧本杀行业区域市场拓展实战案例研究.docx
- 剧本杀行业区域市场拓展路径与模式探索报告.docx
- 剧本杀行业区域市场竞争态势与品牌差异化策略研究报告.docx
- 剧本杀行业2025年西北区域市场市场细分领域竞争态势与品牌竞争策略分析研究报告.docx
- 剧本杀行业2025年西北市场拓展前景预测报告.docx
- 剧本杀行业2025年长沙市场发展潜力分析报告.docx
- 剧本杀行业2025年长三角市场竞争策略与布局分析.docx
- 医疗行业数据合规:2025年数据安全法实施后的合规监管挑战与应对.docx
文档评论(0)