运行时异常可以不捕获,即使一段代码不可能抛出这个RuntimeException,你也可以在任何时候任何地点抛出这个RuntimeException,因此我建议RuntimeException不抛也不捕获,统一交给处理程序最后处理(调用者一般不会知道一个方法会抛出哪些RuntimeException的,因此由程序统一处理)
重写方法时,不能声明抛出和父类方法异常不兼容的异常。如父类抛出一个IOException,这时子类方法可以抛出IOException或Exception(不然里氏替换原则不满足),也可以不声明抛出异常。
编译期异常要显式捕获或往上抛(方法里要显式声明抛转这个异常)。
代码里尽量不捕获异常,但要声明抛出异常。捕获异常的工作尽量交给调用者来处理。
try catch finally 不要在finally中return, finally一般做些释放资源的事情。
如果方法在try 或 catch中返回值的话,即使这个值在finally中做了更改,这个更改值无效(但是在eclipse debug中能看到值变了,但方法返回的结果却是try(catch)中的值,除非你在finally中直接return,但是不建议这么做。因此finally中最好不要有return(eclipse这时会提示警告!)
java思想4edition中提到:吞没异常的两种可能,1: finally中也抛出了异常,这样try中抛出的异常就会被吞没;2:finally中有return语句。
第一种情况,如在finally中关闭网络连接,释放文件资源等,这时的异常一定要自己捕获,不能再往外抛了,否则try中的异常就会被吞了。
java中部分Error是可以捕获的,如StackOverflowError, 而且捕获后vm可以继续工作,StackOverflowError也可象Exception一样一级一级往上抛。但是有的Error不会被捕获,如OutOfMemeoryError, 此时vm也会终止。more debate see http://stackoverflow.com/questions/352780/when-to-catch-java-lang-error
分享到:
相关推荐
java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理java异常处理
高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架高效的java异常处理框架
java异常练习题,北大青鸟学士后课后练习,主要是异常处理的小测验
java 异常详解,java异常分类,创建自己的异常
java异常处理的习题,撒个的是的风格成本凡人歌是东方按时到岗
Java异常
Java异常学习资料,Java异常学习资料,Java异常学习资料
本资源主要描述java异常的知识,里面内容丰富,是java初学者的学习手册,java异常机制小结。
java异常的终极总结 包括非常全面的异常总结 你值得下载!
C++ Java异常处理比较
java 异常处理 代码实例java 异常处理 代码实例
有效处理JAVA异常三原则有效处理JAVA异常三原则有效处理JAVA异常三原则
超全的java异常体系结构以及异常的处理方案,Throwable->Exception-> RuntimeException
java学习之Java异常.ppt
java高端技术课程--Java异常处理详解java高端技术课程--Java异常处理详解java高端技术课程--Java异常处理详解java高端技术课程--Java异常处理详解
本表格集中了所有的java异常 并清晰的加以描述
Java异常详解_动力节点Java学院整理,动力节点口口相传的Java黄埔军校
个人关于java异常处理的思维导图总结。0积分下载。如果认为有帮助,请关注点赞,日后还有更多免费资源。敬请关注。
摘要使用Java异常的人很多,但能合理使用的却不多,Java异常处理设计是一个冷门的话题,但好的异常设计会让程序有质的变化,所以本文从各个方面分析便总结了,在J
Java论文异常处理论文:JAVA异常处理的分析与研究.doc