重複の可能性:
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 を拡張しますが、互いに拡張しないため、両方ともクラス ツリーの兄弟であることを思い出してください。