- 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异常分类
异常机制综述在运行过程中,应用程序可能遭遇各种严重程度不同的问题。异常提供了一种在不弄乱程序的情况下检查错误的巧妙方式。它也提供了一种直接报告错误的机制,而不必检查标志或者具有此作用的域。异常把方法能够报告的错误作为方法约定的一个显式部分。异常能够被程序员看到,由编译器检查,并且由重载方法的子类保留。如果遇到意外的错误将抛出异常,然后异常被方法调用栈上的子句捕获。如果异常未被捕获,将导致执行线程的终止。1、异常的体系结构毫无疑问,在java中异常是对象,它必定继承Throwable及其子类.Throwable中含有一个用于描述异常的字符串。Exception是Throwable的一个最常用子类,另一个子类是Error.而RuntimeException继承自Exception。2、异常的种类(1)非检查型异常(Unchecked Exception)非检查型异常反映了程序中的逻辑错误,不能从运行中合理恢复。标准的运行时异常和错误构成非检查型异常,它们继承自RuntimeException和Error。非检查型异常不用显示进行捕获。(2)检查型异常(Checked Exception)这种异常描述了这种情况,虽然是异常的,但被认为是可以合理发生的,如果这种异常真的发生了,必须调用某种方法处理。Java异常大多是检查型异常,继承自Exception类,你自己定义的异常必须是继承Exception的检查型异常。检查型异常必须进行显示捕获。 自定义异常继承Exception即可定义自己的异常,以下是一种常见写法 public class DBXmlFileReadException extends Exception{ public DBXmlFileReadException(String msg){ super(msg); } } 3、抛出异常在Java语句中,可以用throw语句抛出异常,如throw new NoSuchElementException(); 抛出的对象必须是Throwable类的子类型. 抛出异常的策略: (1)如果抛出后不可能得到处理,可以抛出Error。(2)如果你想让其它类自由选择是否处理这个异常,就可以抛出RuntimeException. (3)如果你要求类的用户必须处理这个异常,则可以抛出Exception. 异常抛出后的控制权转移 一旦发生异常,异常发生点后的动作将不会发生。此后将要发生的操作不是在catch块和finally块。当异常抛出时,导致异常发生的语句和表达式就被称为突然完成.语句的突然完成将导致调用链逐渐展开,直到该异常被捕获. 如果该异常没有捕获,执行线程将中止. Try,catch和finally 异常由包含在try块中的语句捕获: try{ 正常执行语句 } catch(XException e){ 异常执行语句一 } catch(XXException e){ 异常执行语句二 } catch(XXXException e){ 异常执行语句三 } finally{ 中止语句 } Try中的语句体要么顺利完成,要么执行到抛出异常. 如果抛出异常,就要找出对应于异常类或其父类的catch子句,如果未能找到合适的catch子句,异常就从try语句中扩散出来,进入到外层可能对它进行处理的try语句. Catch子句可以有多个,只要这些子句捕获的异常类型不同. 如果在try中有finally子句,其代码在try把所有其它处理完成之后执行. 无论是正常完成或是出现异常,甚至是通过return或者break这样的控制语句结束,finally子句总是被执行. Catch子句和finally子句在try语句之后至少有一个,不要求全部出现. More… 在catch语句中捕获通用的异常Exception通常不是最佳策略,因为它会将所有异常进行等同处理. 不能把基类异常的catch语句放到子类异常的catch语句之前,编译器会在运行之前就检查出这样的错误. Try…catch对每个catch语句都从头到尾检查,如果找到处理同类异常的catch子句,此catch块中的语句将得以执行,而不再处理同层次的其它catch块. 如果catch或finally抛出另一个异常,程序将不会再去检查try的catch子句. Try...catch语句可以嵌套,内层抛出的异常可被外层处理。Throws子句函数能抛出的检查型异常用throws声明,它后面可以是带用逗号隔开的一系列异常类型。仅仅那些在方法中不被捕获的异常必须列出。private v
您可能关注的文档
最近下载
- 无源隔离器;-;mcr-1clp-i-i-00;-;2814016.pdf VIP
- 广东开放大学学习指引(开放教育学习指引)题目及答案.docx
- 办事处食堂改造施工方案投标文件(技术方案).doc
- GB15979-2002 一次性使用卫生用品卫生标准.pdf VIP
- 可靠性鉴定考试试题库.doc VIP
- 九年级上册必背古诗词专项训练(含答案).docx VIP
- (2025秋新版本)人教版八年级数学上册全册教案 .pdf
- 《GBT20002.2-2008标准中特定内容的起草第2部分:老年人和残疾人的需求》(2025版)深度解析.pptx
- GB50877-2014 防火卷帘、防火门、防火窗施工及收规范.docx VIP
- 太湖县2021年(中小学、幼儿园)教师招聘试题及答案.docx VIP
原创力文档


文档评论(0)