假设这段代码在 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
这绝对不是最好的方法......有没有更好的方法?