๋ฐ์ํ
Springboot Exception ์ฒ๋ฆฌ
@ControllerAdvise
@ControllerAdvice
๋ ๋ชจ๋ @Controller ์ฆ, ์ ์ญ์์ ๋ฐ์ํ ์ ์๋ ์์ธ๋ฅผ ์ก์ ์ฒ๋ฆฌํด์ฃผ๋ annotation์ด๋ค.
@RestControllerAdvice
public class GlobalControllerAdvice {
@ExceptionHandler(value = Exception.class)
public ResponseEntity exception(Exception e) {
System.out.println(e.getClass().getName());
System.out.println(e.getLocalizedMessage());
return ResponseEntity.status(HttpStatus.INTERNAL_SERVER_ERROR).body("");
}
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public ResponseEntity methodArgumentNotValidException(MethodArgumentNotValidException e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
}
}
ใ
@ExceptionHandler
@ExceptionHandler
๋ @Controller, @RestController๊ฐ ์ ์ฉ๋ Bean๋ด์์ ๋ฐ์ํ๋ ์์ธ๋ฅผ ์ก์์ ํ๋์ ๋ฉ์๋์์ ์ฒ๋ฆฌํด์ฃผ๋ ๊ธฐ๋ฅ์ ํ๋ค.
({ }) ์์ ์ฒ๋ฆฌํ ์์ธ ํด๋์ค๋ฅผ ๋ฃ์ ํ ๋งค์๋๋ก ์ฒ๋ฆฌ ๋ด์ฉ์ ๊ตฌํํ๋ฉด ๋๋ค.
@RestController
@RequestMapping("/api/user")
public class ApiController {
...
@ExceptionHandler(value = MethodArgumentNotValidException.class)
public ResponseEntity methodArgumentNotValidException(MethodArgumentNotValidException e) {
return ResponseEntity.status(HttpStatus.BAD_REQUEST).body(e.getMessage());
}
}