我正在处理一些工作流程,并且有可能引发许多例外情况。听说我们可以将所有可能的异常保留在Enum中(Exception1,Exception2 ...)并使用它。我们如何使用Java中的Enums做到这一点?
最佳答案
您可以使用添加异常类
enum EnumWithExceptions {
ENUM1(Exception1.class, Exception2.class),
ENUM2(Exception3.class);
private final Class<? extends Exception>[] exceptions;
private EnumWithExceptions(Class<? extends Exception>... exceptions) {
this.exceptions = exceptions;
}
public boolean matches(Exception e) {
for(Class<? extends Exception> e2: exceptions)
if (e2.isInstance(e)) return true;
return false;
}
}
} catch(Exception e){
if (ENUM1.matches(e)){
//do something
} else if(ENUM2.matches(e)) {
//do something
} else {
//do something
}
}