Я предоставляю ниже мое мнение в этом случае. Я хотел бы предложить карту карты ошибок в качестве ключа и другие детали в качестве значений. Например, вы можете поддерживать это так.
Map<String,String> errMap = new HashMap<>();
errMap.put("STAT-102",ERROR.INVALID_CUST_ID);
errMap.put("STAT-103",ERROR.CUST_DOES_NOT_EXIST);
errMap.put("STAT-104",ERROR.CUST_NOT_AUTHENTICATED);
Преимущество здесь в том, что нет необходимости записывать несколько, если в блоке исключений вы можете просто написать так:
catch (final StaticticsProcessingexception ex) {
throw new MyNewCustomException(errMap.get(ex.getErrorCode()))
}
Как предположил Кейман Сэр, вы также можете выбросить IllegalArgumentException, помимо того, что, исходя из ваших бизнес-требований, вы также можете создать свой собственный класс исключений, и вы можете выбросить его, обработав ошибку.