=== 目次 ===
通常のException例外のtry-catchでは検出できない
まず、OutOfMemory例外は通常のException例外のtry-catchでは検出することはできません。以下はサンプルコードです。
try {
throw new OutOfMemoryError();
} catch (Exception e) {
//例外処理
}
このコードを実行すると、try-catchをすり抜けてエラーとなります。
OutOfMemoryをtry-catchする
上記のコードでOutOfMemory例外をtry-catchできなかった理由はOutOfMemory例外はException例外の継承クラスではないからです。catchするにはOutOfMemory例外を直接catchしてやればOKです。
以下、サンプルコードです。
try {
throw new OutOfMemoryError();
} catch (Exception e) {
//例外処理
} catch (OutOfMemoryError e) {
//例外処理
}
このコードならばOutOfMemoryをtry-catchできます。
