Debería lanzar excepciones en un bloque if-else?

Wang elogio:

Aquí está el código:

public Response getABC(Request request) throws Exception {
    Response res = new Response();
    try {
        if (request.someProperty == 1) {
            // business logic
        } else {
           throw new Exception("xxxx");
        }
    } catch (Exception e) {
        res.setMessage(e.getMessage); // I think this is weird
    }
    return res;
}

Este programa está funcionando bien. Creo que debería ser rediseñado, pero ¿cómo?

Eran :

No tiene sentido lanzar una excepción en un bloque try e inmediatamente atraparlo, a menos que el bloque catch emite una excepción diferente.

Su código tendría más sentido de esta manera:

public Response getABC(Request request) {
    Response res = new Response();
    if (request.someProperty == 1) {
        // business logic
    } else {
        res.setMessage("xxxx");
    }
    return res;
}

Sólo se necesita el bloque try-catch si su lógica de negocio (ejecutado cuando la condición es true) puede lanzar excepciones.

Si no se captura la excepción (lo que significa que la persona que llama tendrá que manejarlo), se puede prescindir de la elsecláusula:

public Response getABC(Request request) throws Exception {
    if (request.someProperty != 1) {
        throw new Exception("xxxx");
    }

    Response res = new Response();
    // business logic
    return res;
}

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=37752&siteId=1
Recomendado
Clasificación