In Spring Boot, global exception handling allows you to manage all application errors in one centralized place instead of writing try-catch blocks in every controller.
👉 This is achieved using @ControllerAdvice and @ExceptionHandler.
Why Global Exception Handling is Needed
Without global handling:
Repeated try-catch blocks
Inconsistent error responses
Difficult to maintain
With global handling:
Centralized error management
Clean and readable code
Consistent API responses
Key Annotations
1. @ControllerAdvice
Used to define a global exception handler
Applies to all controllers
2. @ExceptionHandler
Handles specific exceptions
Example Implementation
Step 1: Create Global Exception Handler
@ControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(Exception.class)
public ResponseEntity<String> handleException(Exception ex) {
return new ResponseEntity<>("Something went wrong: " + ex.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
Step 2: Handle Specific Exceptions
@ExceptionHandler(NullPointerException.class)
public ResponseEntity<String> handleNullPointer(NullPointerException ex) {
return new ResponseEntity<>("Null value found!", HttpStatus.BAD_REQUEST);
}
Custom Exception Example
public class ResourceNotFoundException extends RuntimeException {
public ResourceNotFoundException(String message) {
super(message);
}
}
Handler:
@ExceptionHandler(ResourceNotFoundException.class)
public ResponseEntity<String> handleResourceNotFound(ResourceNotFoundException ex) {
return new ResponseEntity<>(ex.getMessage(), HttpStatus.NOT_FOUND);
}
Returning Custom Error Response
public class ErrorResponse {
private String message;
private int status;
}
@ExceptionHandler(Exception.class)
public ResponseEntity<ErrorResponse> handleException(Exception ex) {
ErrorResponse error = new ErrorResponse(ex.getMessage(), 500);
return new ResponseEntity<>(error, HttpStatus.INTERNAL_SERVER_ERROR);
}
Advantages of Global Exception Handling
Centralized logic
Cleaner controllers
Better API design
Easy maintenance
Consistent error structure
Best Practices
Handle specific exceptions first
Create custom exceptions
Return meaningful error messages
Use proper HTTP status codes
Conclusion
Global exception handling in Spring Boot using @ControllerAdvice and @ExceptionHandler helps build clean, maintainable, and production-ready applications by managing errors in a centralized and consistent way.
🚀 Learn Java & Spring Boot
Build real-world backend applications with Best Core JAVA Online Training.

No comments:
Post a Comment