【发布时间】:2016-01-14 16:09:01
【问题描述】:
我想了解一些关于捕获异常的知识。
如果我不希望我的应用程序在发生异常时崩溃并且不知道会抛出什么异常,那么我在代码中处理异常的方式是这样的:
public static void main(String[] args) {
try {
// all my code to new StarGAte with a lot of threads and classes
} catch (Exception e){
//Something went wrong (kill the dev!)
}
}
try/catch 块在我的代码中是否存在任何性能问题? 有没有更好的方法来处理异常?
【问题讨论】:
-
这里的问题是测试,而不是性能。您需要测试中的堆栈跟踪,因为它可以准确地向您显示错误的位置。构建完整的应用程序后,可以在根目录下添加一个
catch (Throwable x),这样您就可以捕获(并报告)任何意外异常。 -
小心线程。此代码不会发现单独线程中的异常。您必须将 Thread 内部封装在类似的 try/catch 中,或者使用 Thread.setDefaultExceptionHandler() 来捕获每个 Thread 异常。