Rav*_*ven 5 java logging exception-handling exception
有没有办法获得有关运行时(处理和未处理)期间抛出的每个异常的通知?
我想要的是一个记录器机制,记录我的程序运行时出现的每个异常.我不想用这个记录器来处理异常,我只想记录抛出异常的事件.
问题是我想要包含所有系统异常,因此每当我抛出一个新异常时都无法调用函数...
我已经阅读了一些内容,ExceptionListener
但它们似乎是针对不同的工作.
有谁知道这怎么可能?
异常通常在捕获(而不是抛出)时记录,因此它们的后果也可以记录。也就是说,某些异常不会产生任何后果,因此无需调查,而其他异常则极其严重,只要发生就必须进行调查。因此,一个好的日志文件不仅应该传达发生异常的情况,还应该传达该异常的(业务)影响,只有在捕获异常后才能知道这一点。这要求在处理异常时记录异常。
因此,没有Java API可以拦截正在运行的程序抛出的所有异常。
但是,有时查看所有抛出的异常会有所帮助。您可以通过将调试器附加到 JVM 并为java.lang.Throwable
. 或者,您可以编写一个拦截器来记录跨越某些 API 边界的所有异常(任何合理的依赖项注入容器都可以提供帮助)。或者,您可以使用Instrumentation API在类加载时向其添加日志记录。