我正在开发一款Swing应用程序,其中一个组件进行了自定义绘制。当我在绘制代码中犯了一些错误并抛出异常时,很难调试。没有被调试器捕获,而是弹出一个包含异常信息的弹出窗口。此外,线程似乎重新启动,并且由于异常是编码错误的结果,它会一遍又一遍地显示。
当我足够幸运能够进入调试器(这很困难,因为应用程序发出的绘制请求越来越多),调试控制台会显示如下异常信息:
"SEVERE: Uncaught exception thrown in Thread[AWT-EventQueue-0,6,main] ....堆栈跟踪"
我的应用程序采用Scala编写,我使用IntelliJ IDEA 14。我的未捕获主线程异常已经被调试器处理得很好(在Java Exception Breakpoints中启用了Uncaught exception选项),但是AWT线程中的异常却没有被处理。
我尝试按照这个如何在Java中全局检测异常的答案中所述的安装处理程序,但我的处理程序似乎没有被触发。
我希望实现以下目标(按重要性排序):
当我足够幸运能够进入调试器(这很困难,因为应用程序发出的绘制请求越来越多),调试控制台会显示如下异常信息:
"SEVERE: Uncaught exception thrown in Thread[AWT-EventQueue-0,6,main] ....堆栈跟踪"
我的应用程序采用Scala编写,我使用IntelliJ IDEA 14。我的未捕获主线程异常已经被调试器处理得很好(在Java Exception Breakpoints中启用了Uncaught exception选项),但是AWT线程中的异常却没有被处理。
我尝试按照这个如何在Java中全局检测异常的答案中所述的安装处理程序,但我的处理程序似乎没有被触发。
我希望实现以下目标(按重要性排序):
- 避免AWT线程在异常时重新启动,或者至少防止弹出窗口显示
- 在调试器中处理未捕获的异常,而不是在控制台中打印