Al manejar excepciones globales en una aplicación Spring Boot, puede usar las anotaciones @ControllerAdvice y @ExceptionHandler para lograr un manejo de excepciones unificado y elegante.
Paso 1: Crea un proyecto de Spring Boot
Cree un nuevo proyecto Spring Boot en IntelliJ IDEA y agregue las dependencias requeridas.
Paso 2: Definir una clase de excepción personalizada
En el directorio src/main/java del proyecto, cree una clase de excepción personalizada para representar las excepciones que pueden ocurrir en la aplicación.
public class CustomException extends RuntimeException {
private String errorCode;
private String errorMessage;
public CustomException(String errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
// getter and setter methods
}
Paso 3: Cree una clase de manejo de excepciones unificada
En el directorio src/main/java del proyecto, cree una clase de manejo de excepciones unificada y use las anotaciones @ControllerAdvice y @ExceptionHandler para capturar y manejar excepciones globales.
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(CustomException.class)
public ResponseEntity<ErrorResponse> handleCustomException(CustomException ex) {
ErrorResponse errorResponse = new ErrorResponse(ex.getErrorCode(), ex.getErrorMessage());
return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
}
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> handleGenericException(Exception ex) {
ErrorResponse errorResponse = new ErrorResponse("500", "Internal Server Error");
return new ResponseEntity<>(errorResponse, HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Paso 4: crear una clase de respuesta de error
En el directorio src/main/java del proyecto, cree una clase de respuesta de error para encapsular la información de error.
public class ErrorResponse {
private String errorCode;
private String errorMessage;
public ErrorResponse(String errorCode, String errorMessage) {
this.errorCode = errorCode;
this.errorMessage = errorMessage;
}
// getter and setter methods
}
Paso 5: Cree un controlador de muestra
En el directorio src/main/java del proyecto, cree una clase de controlador de muestra para activar excepciones personalizadas.
@RestController
public class ExampleController {
@GetMapping("/example")
public void example() {
throw new CustomException("400", "Bad Request");
}
}
Paso 6: Ejecute la aplicación
En IntelliJ IDEA, ejecute la aplicación Spring Boot.
Paso 7: Probar el manejo de excepciones
Acceder a la ruta http://localhost:8080/example con cualquier cliente HTTP (como Postman) debería desencadenar una CustomException y devolver una respuesta de error.