码迷,mamicode.com
首页 > 其他好文 > 详细

一个Exception catch不住的【异常】

时间:2018-08-10 19:47:54      阅读:136      评论:0      收藏:0      [点我收藏+]

标签:error:   开始   存在   定义   exception   技术   文件   err   bsp   

现象:

Controller中的方法接收到前台ajax请求后开始执行,

当执行到某一行时程序终止,前台回调进Error方法。

后台明明catch了Exception异常,但异常并没有被捕获(不进catch)。


检查发现:

方法中引用的一个常量类,没有更新到生产环境。

因为项目处于改造中期,功能没有全部上线,而该常量类又是为新需求定义的,

结果...大家都知道了。


为什么Exception罩不住:

因为这类问题抛出的是 Error


开发过程中,一般Exception就能罩所有问题,因为有IDE看着场子,编译错误都能及时被发现。

技术分享图片

而Error 和 Exception平级,谁也罩不住谁,它们都继承于Throwable。


正常来说,引用一个不存在的类是不能通过编译的,但可以通过欺骗编译器来复现这个问题,

比如通过编译之后删除掉引用类的class文件。

如果用一个Throwable来catch 就会发现:

java.lang.NoClassDefFoundError: demo/DemoConstant

错误 被抓住了。



一个Exception catch不住的【异常】

标签:error:   开始   存在   定义   exception   技术   文件   err   bsp   

原文地址:https://www.cnblogs.com/jpfss/p/9456562.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!