JAVA异常分类.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 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

文档评论(0)

jiupshaieuk12 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6212135231000003

1亿VIP精品文档

相关文档