我正在处理一些工作流程,并且有可能引发许多例外情况。听说我们可以将所有可能的异常保留在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
    }
}

10-04 10:06