- 강의
- 100강(스프링부트와 문서화와 로깅 남기기) ~ 102강(스프링부트와 JPA)
예외 처리
- HTTP status code
- 500 : 최대한 지양
- 400 : Bad Request
- 403 : Forbidden
- 404 : Not Found
- 406 : Not Acceptable
- HTTP status 500 발생 이유
- 특정 상황 예외 발생했지만 아무도 처리하지 않은 경우
- 예외 처리의 핵심
- 외부 전파 예외
- controller layer까지 전파 → 클라이언트에게 예외 전달
- controller : HTTP error 코드 + 메세지 응답 전달
- @RestContollerAdvice 사용
- 내부 예외
- 내부 다른 Default 값으로 치환
- 상위 내부 layer 전파 후 처리
- 외부 전파 예외
- @RestControllerAdvice
- 특징
- web layer
- 전역적인 exception 처리
- @ResponseStatus : HTTP Status 설정
- @ExceptionHandler : 에러 클래스 ex) @ExceptionHandler(NotFoundException.class)
- 장점
- 반복적인 코드 감소
- try-catch문 생략으로 가독성 향상
- 특징
public class NotFoundException extends RuntimeException {
public NotFoundException(String message) {
super(message);
}
}
@RestControllerAdvice
public class ExceptionControllerAdvice {
@ResponseStatus(HttpStatus.NOT_FOUND)
@ExceptionHandler(NotFoundException.class)
public String handleNotFoundException(NotFoundException e) {
return e.getMessage();
}
}
AOP
- AOP = Ascpect Oriented Programming, 관점 지향형 프로그래밍
- 공통적인 코드들의 모듈화
- 예외 처리 : ex) ControllerAdvice
- 로깅
- 보안
- ex) 트랜잭션 : 공통 데이터 원자화
- 어드 바이스(advice) : 구현된 모듈화
- 어드바이스가 필요한 로직에 침투하여 사용됨
'슈퍼코딩 > 주특기(JAVA)' 카테고리의 다른 글
2024.06.05(수) 슈퍼코딩 신입연수원 10주차 Day 3 후기 - 테스팅, 서버 업무, 서블릿 컨테이너, filter, interceptor (0) | 2024.06.05 |
---|---|
2024.06.04(화) 슈퍼코딩 신입연수원 10주차 Day 2 후기 - JPA, PSA (0) | 2024.06.04 |
슈퍼코딩 신입연수원 9주차 후기 (0) | 2024.06.01 |
2024.05.31(금) 슈퍼코딩 신입연수원 9주차 Day 5 후기 - Lombok, Mapper, 로깅, 문서화 (0) | 2024.05.31 |
2024.05.30(목) 슈퍼코딩 신입연수원 9주차 Day 4 후기 - Service Layer, 트랜젝션 (0) | 2024.05.30 |