有没有办法在eclipse应用程序中捕获异常时得到通知?
我知道如果我使用eclipse调试器启动一个应用程序,我可以在捕获和未捕获异常时暂停执行(请参阅https://stackoverflow.com/a/3066280/228965)。我猜这个特性以某种方式使用了JVMTI。
现在我有以下问题:
我有一个eclipse应用程序不是我写的。我想要监控此应用程序。我已经编写了一些包来监控应用程序的不同方面(用户交互、工作台更改等)。我使用bundles.info文件启动应用程序中的这些包。现在,每当发生异常时,我都需要得到通知。我在错误日志中添加了一个监听器,这样我就会收到未捕获的异常的通知。然而,我也希望能够被通知“任何”异常,即使是那些已经被原始开发人员捕获的异常。
有没有办法做到这一点?
发布于 2012-01-09 04:20:06
将断点添加到java.lang.Exception
(或者甚至Throwable
,这取决于您要查找的内容)的构造函数中。
所有的异常,即使是自定义的异常,都必须从其中一个扩展而来,这样您就可以在创建时找到每个异常-然后甚至跟踪它,以查看它是在哪里被捕获和处理的(如果有的话)。
使用AOP也可能是一个很好的选择,但这种方法不需要对现有代码进行任何修改-源代码或字节码。
发布于 2012-01-09 04:25:49
您可以调查应用程序的记录器。如果它使用log4j,您可以创建一个特定于异常附加器并使用它们。
发布于 2012-01-09 07:01:24
从JDK1.5开始,您可以使用Thread.setDefaultUncaughtExceptionHandler()
来实现这一目的。
https://stackoverflow.com/questions/8780885
复制相似问题