如何在Java中重构异常处理

dwbf0jvd  于 2022-12-21  发布在  Java
关注(0)|答案(1)|浏览(100)

感谢您提前阅读我的问题。
有没有办法重构下面的代码?
下面的代码是关于处理我的项目中的错误的。
我省略了if-else代码并修改了变量名以使我的问题更简单。原始代码中有更多的if-else代码和变量。

private static final String NUMBER_ONE = "number.one";
private static final String NUMBER_TWO = "number.two";
private static final String NUMBER_THREE = "number.three";
private static final String NUMBER_FOUR = "number.four";
private static final String NUMBER_FIVE = "number.five";

// ... more error names 

public void handler(ApiException exception, String customerNo, String code) {
    if (is(NUMBER_ONE, exception)) {
    throw new NumberOneException(customerNo, code);
    } else if (is(NUMBER_TWO, exception)) {
    throw new NumberTwoException(customerNo);
    } else if (is(NUMBER_THREE, exception)) {
    throw new NumberThreeException(code);
    } else if (is(NUMBER_FOUR, exception)) {
    throw new NumberFourException(customerNo, exception.toError());
    } else if (is(NUMBER_FIVE, exception)) {
    throw new NumberFiveException(exception.toError());

    // ... too many if-else sentences :-(
     
    }

private boolean is(ApiException exception, String errorCode) {
    return StringUtils.equals(exception.getCode(), errorCode);
    }

我考虑的是Enum或HashMap,但没有应用其中任何一个。
主要原因是每个异常需要不同的参数。
我仍然在考虑使用HashMap,但不确定它是否有效。

相关问题