我怀疑这样的事情是可能的,但是如果没有将调试器附加到java应用程序,是否可以让一些集合填充有关java应用程序中生成的每个异常的信息,无论它是否被捕获?我知道在.NET中,应用程序会生成有关异常的消息,这些异常在此时称为“First Chance Exceptions”,随后可能会或可能不会由应用程序处理.我想知道在java中是否可能存在类似的机制,我可以利用它来查看有关在运行时生成的所有异常的信息.
只是为了澄清.这与发生异常的上下文无关.这个问题不是关于我在catch块中做了什么,或者是未处理的异常.它是关于知道JVM是否提供了一种机制来查看在运行时生成的每个异常,无论生成什么或上下文.
解决方法:
为什么不呢,这当然是可能的!但首先..记录JVM遇到的所有异常都是浪费生命.它在任何意义上都毫无意义,可能会有几个没有任何意义的抛弃.
但如果确实如果你别无选择,你可以调整你的Java来做到这一点.
打破良好的编程规则,我们的生活,我给你这个想法:
>将JDK源代码中的java.lang.Exception的源代码复制到项目中.
>在Exception.java中创建一个方法,如下所示:
private void logException() {
// Your logging routine here.
}
>编辑java.lang.Exception以在每个构造函数的末尾调用此方法logException().
>将新的java.lang.Exception添加到bootstrap类路径中.
>设置您的日志记录级别等并运行.
抬起头来,把它呈现给你那怪异的客户,用你的外交技巧并用几句话吓唬他们“我们可以做到这一点……但这是你自己的风险”.你可能会说服他不要使用它.
标签:java,exception-handling,first-chance-exception
来源: https://codeday.me/bug/20190528/1173012.html