このコード片が 20 か所にあり、常に同じであると仮定します。
try {
// do something
} catch (FirstException e) {
// log it
} catch (SecondException e) {
// log it
}
このようなものを使用する方が良いでしょうか、それともinstanceof
良い解決策ではありませんか?
try {
// do something
} catch(Exception e) {
logException(e);
}
void logException(Exception e) {
if (e instanceof FirstException) {
// log it
} else if (e instanceof SecondException) {
// log it differently
} else {
// do something with other exception
}
}
私がソリューションについて本当に嫌いなのException
は、間違いなく最善の方法ではないキャッチです...もっと良い方法はありますか?