Exception Handling In REST API

TUSHAR KANT
2 min readJul 14, 2023

--

#Spring Boot #REST API

-> Exception is an unexpected and unwanted situation occuring in the application

  • > When exception occured our program will terminate abnormally
  • -> To achieve graceful termination of the program we need to handle the exception
  • -> In Java we have below keywords to handle the exceptions
  • 1) try : It is used to keep risky code
  • 2) catch : Catch block is used to handle the exception
  • 3) throw : It is used to re-throw the exception
  • 4) throws : It is used to ignore the exception
  • 5) finally : It is used to execute clean up logic (closing files, closing connection, release resources….)
  • Note: When we get exception in REST API we should convey that exception information to client / client application in json format
  • Ex: {

msg : “Exception Reason”

code : “SBI0004”

}

  • Note: In project, for every exception we will use one CODE i.e exception code
  • -> In Spring web mvc we can handle exceptions in 2 ways
  • 1) Controller Based Exception Handling — Exception Handlers applicable for only particular controller
  • 2) Global Exception Handling — Exception Handlers applicable for all the classes in the project

@RestController
public class DemoRestController {
private Logger logger =
LoggerFactory.getLogger(DemoRestController.class);
@GetMapping(“/”)
public String doAction() {
String msg = “Action in progress”;
try {
int i = 10 / 0;
}

catch (Exception e) {
logger.error(“Exception Occured ::” + e, e);
throw new ArithmeticException(e.getMessage());
}
return msg;
}
@ExceptionHandler(value=ArithmeticException.class)
public ResponseEntity<ExceptionInfo> handleAE(ArithmeticException
ae) {
ExceptionInfo exception = new ExceptionInfo();
exception.setMsg(ae.getMessage());
exception.setCode(“AIT0004”);
return new ResponseEntity<>(exception,
HttpStatus.INTERNAL_SERVER_ERROR);
}
}

--

--