これが可能であるかどうかは少し疑わしいですが、これについてより多くの情報を入手すると非常に役立ちます. 関数がまだスローしていないすべての例外をキャッチする方法を知りたいです。
関数があるとします:
public int func(int a, int b) throws IOException, EOFException {
try {
doSomething(a, b);
} catch (AllExceptionsExceptionIOandEOF e) {
doSomethingWithError(e);
}
return 0;
}
Javaにそれを行う方法を伝える方法はありますか? ジェネリックException
をスローすることはすべての場合に機能することはわかっていますが、スローされた例外以外はすべてスローしたいと考えています。
これが悪い習慣と見なされる場合、その理由は何ですか? そして、同じ目標を達成するための良い代替手段は何ですか?
(追伸 -- 考えられるすべての例外は個別に処理する必要があるという格言は知っています。私の目的としては、エラーをキャッチしてデータベースに記録し、その間に見逃したものを確認したいだけです。Exception
関数がすでに 2 つの例外をスローしている場合、ジェネリックをキャッチするのは気が進まない)
思いついたのですが、1つの方法は次のように言うことです:
try {
doSomething(a, b);
} catch (AllExceptionsExceptionIOandEOF e) {
doSomethingWithError(e);
if (e instanceof IOException)
throw e;
if (e instanceof EOFException)
throw e;
}
これを行うよりエレガントな方法はありますか?
編集 - 残念ながら、プロジェクトは Java 6 準拠で行われています。ただし、Java 7 によって Try/Catches がもう少し柔軟になったことは知っています。