Spring/예외처리 4

[Spring] 예외처리 - throw, throws

throw : 예외를 발생시키는것. 예외 객체를 생성해서 즉시 던진다. throws :자신을 호출한 상위 메서드로 에러를 던짐. 오류를 처리하지않고 디바이드 메서드를 호출한 쪽에게 오류를 처리하라고 떠넘길 수 있음. catch 블록에서 매칭 : 더 구체적인 타입을 먼저 매칭 NullPointerException : RuntimeException의 하위 클래스.RuntimeException : Exception의 하위 클래스.>> NullPointerException을 먼저 잡음. public static void main(String[] args) { int sum = 0; try { func(); } catch (NullPointerException e) { ..

Spring/예외처리 2025.04.10

[Spring] 예외처리 - 비지니스 로직

개발자가 의도적으로 예외를 던질 수 있는 상황 - 백엔드 서버와 외부 시스템과의 연동에서 발생하는 에러 - 시스템 내부에서 조회하려는 리소스가 없는 경우 💡GlobalExceptionAdvice  @ExceptionHandler @ResponseStatus(HttpStatus.NOT_FOUND) public ErrorResponse handleBusinessLogicException(BusinessLogicException e) { // ErrorResponse 에서 BusinessLogicException를 파라미터로 받았을 때. (1) final ErrorResponse response = ErrorResponse.of(e); // ErrorResp..

Spring/예외처리 2024.06.15

[Spring] 예외처리 - Spring MVC

bindingResult : 스프링이 제공하는 검증 오류 보관 객체. 검증 오류가 발생하면 BindingResult 객체에 보관.  - @ModelAttribute 바로 옆에 둬야 한다. ObjectError : 글로벌 오류. FieldError : 필드 오류. FieldError(검증 객체 이름, 오류가 발생한 필드 이름, 오류 기본 메시지) - 타입 오류로 바인딩에 실패하면 FieldError 를 생성하며 오류를 넣고, 해당 오류를 BindinResult 에 담아 컨트롤러를 호출.  @RestControllerAdvice  - 여러 개의 Controller 클래스에서 @ExceptionHandler 가 추가된 메서드를 공유해 사용할 수 있다. - 이 에너테이션을 추가한 클래스를 통해 예외 처리를 공통..

Spring/예외처리 2024.06.13

[Spring] 예외처리 - 정적 팩토리 메서드

예외  - checked Error : class 파일로도 안 바뀌고 그 전에 찾아서 멈취버림. 컴파일이 안 됨. 사용자가 처리를 해줘야 함.   - unchecked Error : 사용자가 예외처리 안 해도 컴파일 되는 에러.                                   안해도 컴파일이 됨. 코드가 실행됐을 때 에러 발생. 어떠한 수를 0으로 나눌 때. 에러 : 개발자의 손을 떠나감.   1. 생성자가 오버로딩이 되는데 static으로 안 만들고 생성자로 만들면되지 않느냐 - 생성자는 객체를 만들거라는 의미 밖에 없음. - 생성자로 오버로딩 하면 static 을 못함. 어찌됐든 객체를 만들어야 함.  - 정적 팩토리 메서드(Static Factory Method) Static Metho..

Spring/예외처리 2024.06.13