重要: この質問は、Java 6 (およびそれ以下) にのみ関連しています。
ここの階層は、JavaException
が 2 つのタイプに分けられることを示しています:RuntimeException
と[not a RuntimeException] :
代わりにUncheckedException
andのように分割したほうがよかったのではないでしょうか? CheckedException
たとえば、次のステートメントにはかなりの数のチェック例外があります。
try {
transaction.commit();
} catch (SecurityException e) {
} catch (IllegalStateException e) {
} catch (RollbackException e) {
} catch (HeuristicMixedException e) {
} catch (HeuristicRollbackException e) {
} catch (SystemException e) {
}
成功するか失敗するかだけに本当に興味があるので、チェックされた例外をグループとして処理したいのですが、予期しないエラーをキャッチするのは良い習慣ではないため、チェックされていない例外は扱いません。したがって、これを念頭に置いて、次のようなことができるかもしれません。
try {
transaction.commit();
} catch (Exception e) {
if (e instanceof RuntimeException) {
// Throw unchecked exception
throw e;
}
// Handle checked exception
// ...
}
しかし、これはひどくハッキーに思えます。より良い方法はありますか?