java - 默认异常处理程序显式处理异常的首选方法是什么?

标签 java exception

在我的(图形)Java 应用程序中,在某些情况下,我希望用户看到异常,因为我无能为力。

我的第一个想法是让异常冒泡,直到应用程序范围的默认异常处理程序捕获它,但在某些情况下这是不可能的(主要是因为 ActionListener 接口(interface))

将异常重定向到默认异常处理程序的首选方法是什么?

是否有调用默认处理程序的方法(Thread.defaultUncaughtExceptionHandlersun.awt.exception.handler),还是直接显式调用方法更好在我的默认异常处理程序类上?

最佳答案

为所有非技术异常创建一种或多种异常类型。确保它扩展了RuntimeException

如果您遇到仍应通知用户的已检查异常,请将它们包装在您自己的类型中(但尝试提供合适的消息,而不仅仅是“空指针”或其他内容)。

在您的 gui 层中,添加一个捕获自定义异常类型的层。我建议你使用 aop 来实现这一点,但你也可以通过困难的方式来做到这一点。然后只需向用户显示错误消息,并记录堆栈跟踪。

关于java - 默认异常处理程序显式处理异常的首选方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4931707/

相关文章:

c# - 在 Debug模式下观察变量时出现 FileNotFoundException

java - 安全问题 : For REST URLs and Static HTMLs

java - 从输入流读取有限长度的最佳实践

wpf - 未处理的异常

java - 为什么 UnknownHostException 没有被 Exception (java) 捕获?

java - Junit测试预期异常: java. io.FileNotFoundException,junit.framework.assertionFailedError

java - java Swing 中没有出现滚动条

java - 在不可变请求类中使用 Lombok

java - 如何从反馈列表中以最小顺序查找每个用户给出的最新反馈?

javascript - NOT_FOUND_ERR : DOM Exception 8 - javascript