在我的(图形)Java 应用程序中,在某些情况下,我希望用户看到异常,因为我无能为力。
我的第一个想法是让异常冒泡,直到应用程序范围的默认异常处理程序捕获它,但在某些情况下这是不可能的(主要是因为 ActionListener
接口(interface))
将异常重定向到默认异常处理程序的首选方法是什么?
是否有调用默认处理程序的方法(Thread.defaultUncaughtExceptionHandler
或 sun.awt.exception.handler
),还是直接显式调用方法更好在我的默认异常处理程序类上?
最佳答案
为所有非技术异常创建一种或多种异常类型。确保它扩展了RuntimeException
。
如果您遇到仍应通知用户的已检查异常,请将它们包装在您自己的类型中(但尝试提供合适的消息,而不仅仅是“空指针”或其他内容)。
在您的 gui 层中,添加一个捕获自定义异常类型的层。我建议你使用 aop 来实现这一点,但你也可以通过困难的方式来做到这一点。然后只需向用户显示错误消息,并记录堆栈跟踪。
关于java - 默认异常处理程序显式处理异常的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931707/