Should I throw exceptions in an if-else block?

  • A+
Category:Languages

Here is the code:

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; } 

This program is working fine. I think it should be redesigned, but how?

 


It makes no sense to throw an exception in a try block and immediately catch it, unless the catch block throws a different exception.

Your code would make more sense this way:

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

You only need the try-catch block if your business logic (executed when the condition is true) may throw exceptions.

If you don't catch the exception (which means the caller will have to handle it), you can do without the else clause:

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

Comment

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: