Throwable 处理 Exception 没有捕捉到的异常

1、try catch Exception->try 块里边的代码有异常,却没有捕捉到,导致看起来一切好好的,就是不知道哪里异常了,什么异常。

2、原来有些异常是不能被 Exception 捕捉的,可以在外层即调用异常代码的地方用 try catch Throwable 捕捉异常。

3、看下效果,是 NoClassDefFoundError,缺包了呢,引入就好啦T_T

总结:

大概查了一下,原来 Exception 和 Error 都是 Throwable 的子类。


虽然问题解决了,但还不是很了解异常的原理,先记录着,后续弄清楚再续...

-------------------------------------------------------华丽的分割线--------------------------------------------------

后续来了,梳理了一波异常放这篇了->Java异常(漂亮简洁的思维导图)

虽然在 catch 子句中使用 Throwable ,它不仅会捕获所有异常,也将捕获所有的错误。当 JVM 抛出错误,指出不应该由应用程序处理的严重问题,比如 OutOfMemoryError 、StackOverflowError,两者都是由应用程序控制之外的情况引起的,无法处理,这种情况不适合捕获。那么什么情况适合使用 Throwable 呢?

1、如本栗子,用来调试的时候,即自己确定捕获后能处理或不用处理的时候。

2、阿里巴巴Java开发手册:在调用RPC、二方包、或动态生成类的相关方法时,捕捉异常必须使用Throwable类来进行拦截。 说明:通过反射机制来调用方法,如果找不到方法,抛出NoSuchMethodException。什么情况会抛出NoSuchMethodError呢?二方包在类冲突时,仲裁机制可能导致引入非预期的版本使类的方法签名不匹配,或者在字节码修改框架(比如:ASM)动态创建或修改类时,修改了相应的方法签名。这些情况,即使代码编译期是正确的,但在代码运行期时,会抛出NoSuchMethodError。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值