可能重复:
捕捉 Throwable 是一种不好的做法吗?
捕捉可投掷物是最佳做法吗?如果捕获 throwable,它会捕获内存不足等异常吗?
捕获异常的唯一方法与捕获Throwable
异常相同。它的工作原理是,它通过层次结构树捕获异常/错误。
所以如果你想捕捉OutOfMemory
错误,你有一些选择:
try{
}catch(java.lang.OutOfMemoryError t){
}
try{
}catch(java.lang.Error t){
}
try{
}catch(java.lang.Throwable t){
}
只需检查文档中的类树以获取您想要捕获的异常。 http://docs.oracle.com/javase/6/docs/api/java/lang/OutOfMemoryError.html
还有一个很好的做法是在你的 catch 块中总是从树底部的那些开始,例如:
try{
//
}catch(java.lang.OutOfMemoryError t){
// handle out of memory error
}catch(java.lang.Throwable t){
// handle other throwable
}
还要记住,Error 和 Exception 它们都扩展 Throwable,但它们不相互扩展,因此它们都是类树中的兄弟姐妹。