在重构一些代码时,我被要求对异常处理进行更改,更改一些 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。
所以问题是:通过简单的整数比较和归因,可以捕获块中所有异常的最具体的异常是什么?