捕获java中所有抛出的异常?

Mar*_*k W 4 java exception-handling first-chance-exception

我怀疑这样的事情是可能的,但是如果没有将调试器附加到java应用程序,是否可以让一些集合填充有关java应用程序中生成的每个异常的信息,无论它是否被捕获?我知道在.NET中,应用程序会生成有关异常的消息,这些异常在此时称为"First Chance Exceptions",随后可能会或可能不会由应用程序处理.我想知道在java中是否可能存在类似的机制,我可以利用它来查看有关在运行时生成的所有异常的信息.

只是为了澄清.这与发生异常的上下文无关.这个问题不是关于我在catch块中做了什么,或者是未处理的异常.它是关于知道JVM是否提供了一种机制来查看在运行时生成的每个异常,无论生成什么或上下文.

Raj*_*ran 6

为什么不呢,这当然是可能的!但首先..记录JVM遇到的所有异常都是浪费生命.从各方面来说,它都毫无意义,可能会有一些没有任何意义的抛弃.

但如果确实如果你别无选择,你可以调整你的Java来做到这一点.

打破良好的编程规则,我们的生活,我给你这个想法:

  1. java.lang.ExceptionJDK 源代码的源代码复制到项目中.

  2. Exception.java中创建一个方法,如下所示:

    private void logException() {
        // Your logging routine here.
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 编辑java.lang.ExceptionlogException()在每个构造函数的末尾调用此方法.

  4. 将新添加java.lang.Exceptionbootstrap类路径.

  5. 设置您的日志记录级别等并运行.

抬起头来,把它呈现给你那怪异的客户,用你的外交技巧并用几句话吓唬他们" 我们可以做到这一点......但这是你自己的风险 ".你可能会说服他不要使用它.