• 一个Exception catch不住的【异常】


    现象:

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

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

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


    检查发现:

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

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

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


    为什么Exception罩不住:

    因为这类问题抛出的是 Error


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


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


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

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

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

    java.lang.NoClassDefFoundError: demo/DemoConstant

    错误 被抓住了。



  • 相关阅读:
    webpack详解
    扩展运算符及其在vuex的辅助函数里的应用详解
    react组件间传值详解
    类的构造函数(3)
    类构造函数(4)
    new delete
    类的构造函数(1)
    类的构造函数(2)
    类的继承(1)
    静态成员数据与函数
  • 原文地址:https://www.cnblogs.com/jpfss/p/9456562.html
Copyright © 2020-2023  润新知