第一次遇到jvm报Error的情况,也是第一次注意到无法catch的情况。

在用itextpdf读pdf时,报错

java.lang.NoClassDefFoundError: org/bouncycastle/asn1/ASN1Encodable

原因是一个类文件没有找到。

java异常类有两大类:Error和Exception。这两类都有同一个接口Throwable。

 

出现Error错误,大多表示错误与代码编写者执行的操作无关,而表示代码运行时JVM(Java 虚拟机)出现的问题。比如上文提到的“没有到找class文件”问题。

一般来说,不建议捕获Error,因为Error错误大部分是无法恢复的。但是有时会想要记录错误到日志,这时候可以通过

try{
} catch(Throwable r){
}

来捕获所有的Error和Exception。Error和Exception都是jvm控制的,也是jvm抛出的,所以理论上所有的Error和Exception都是可以捕获的,程序也可以在捕获错误后继续运行,但是程序应该遵循Error、RuntimeException和受检异常的本意,相应处理。

 

参考:
http://blog.csdn.net/mccand1234/article/details/51579425
http://blog.csdn.net/jamesjxin/article/details/46606307

posted on 2018-06-26 19:07  SimbaStar  阅读(257)  评论(0编辑  收藏  举报