一部のコードをリファクタリングしているときに、例外処理に変更を加えるように求められ、いくつかの catch 句を変更して、try ブロックで可能な限り具体的な例外を取得しました。しかし、私はこのスニペットに出くわしました:
try {
if (flagYear) {
if (Day[0] == Month[0]) {
if (Day[1] != null) {
Month = Month[0];
Day = Day[1];
} else {
Month = Month[1];
Day = Day[0];
}
} else {
Month = Month[0];
Day = Day[0];
}
} else {
if (Day[0] == Month[0]) {
if (Month[1] != null) {
Month = Month[1];
Day = Day[0];
} else {
Month = Month[0];
Day = Day[1];
}
} else {
Month = Month[0];
Day = Day[0];
}
}
} catch (RuntimeException e) {
throw new ExampleException();
}
変数は次のように宣言されます。
Integer[] Day = new Integer[2];
Integer[] Month = new Integer[2];
Integer クラスの javadoc は NumberFormatException のみを参照します。
問題は次のとおりです。ブロック内のすべての例外を単純な整数比較と属性でキャッチできる最も具体的な例外は何ですか?