捕捉是否是最好的做法?

时间:2012-06-17 02:55:20

标签: java

  

可能重复:
  Is it a bad practice to catch the Throwable?

抓住扔掉的最佳做法是什么?如果捕获throwable,它会捕获内存等异常吗?

1 个答案:

答案 0 :(得分:0)

捕获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,但是它们没有相互扩展,因此它们都是类树中的兄弟。