【发布时间】:2015-07-15 12:58:02
【问题描述】:
我有一个自定义异常,它具有几个继承自 Exception 类的属性。
根据异常的实例,我想返回一个代码。 代码:
public int manageException(Exception exception) {
int code = 0;
if (exception instanceof MyCustomException) {
code = ((MyCustomException) exception).getCode();
} else if (exception instanceof NestedRuntimeException) {
code = 444;
} else if (exception instanceof HibernateException) {
code = 555;
} else {
code = 666;
}
return code;
}
【问题讨论】:
-
如果你把它放在
try-catch块的多个catch子句中,你就不必使用instanceof。 -
我实现这个方法是因为我应该发送带有错误的邮件。所以,我只想在一个地方管理异常。
-
我假设您使用的是 Java 8?
-
有一种复杂的 lambdas 方式(但在 Java 7 中没有),但我不知道我会说它比
instanceof更好。如果您确实需要在多个地方处理这些异常,这可能是少数情况下它是适合该工作的工具的情况之一。您确定您没有过早/过深地处理异常吗? -
是的,我也这么认为。我只是好奇。
标签: java oop exception exception-handling