我的客户正在使用他无法提供给我的数据(隐私原因)测试我的 beta 阶段 Java 应用程序。尽管我实现了大多数异常的处理,但应用程序在极少数情况下崩溃。
我可以将未捕获的异常的堆栈跟踪记录到文件中,以便测试人员可以向我提供它(例如NullPointerException
)吗?
设置打印到指定文件的Thread.UncaughtExceptionHandler 。
如果主线程崩溃,JVM 将自动打印堆栈跟踪。
对于其他线程,您可以使用setUncaughtExceptionHandler。
这正是UncaughtExceptionHandler
概念的意义所在。
基本上,当异常到达堆栈顶部时,您可以注册一段要执行的代码。