life is egg
23.01.05 [예외처리 탐구..] 본문
1.DTO
// 3가지 단계를 나누어서 생각
//1단계 Dto만 만들고 try catch // 모든 매서드 모든 에러경우마다? 힘드러
//2단계 컨트롤러에 예외처리를 추가 by @ExceptionHandler! //매 컨트롤러마다? 힘드러
//3단계 글로벌 예외처리.. ! RestControllerAdvice
2.Handler
@Slf4j
//(Simple Logging Facade For Java),로깅 추상화 라이브러리! (즉 추상화기때문에 구현프레임워크를 logback을 채택중...? 사용)?
//라이브러리? 난 설치안했는데? 스프링부트 만들때 로깅 관련 의존성 알아서 깔아줌 !
//
// Logging 이뭐냐면 https://www.youtube.com/watch?v=1MD5xbwznlI&t=650s //우테코톡 1편 2편 이있다 Facade 는? 디자인패턴중 하나라고 알아만 두면..좋다 외관~ 인터페이스를 만드는느김
//sout ->TEST코드 -> 로깅... 배표환경에서 확인....
// 로깅은 프로그램동작시 발생하는 모든 일을 기록하는 행위
// 모든일 ~ 서비스의 동작(에러) +장애(exception.error) //기록~ sout or ,,로깅프레임워크이용(SLF4J ,,Logback,,Lof4j등이 있다)
//로깅기능을 이용하면 출력형식을 지정 로그 레벨에 따라 남기고싶은 로그를 별도로 지정가능.. 콘솔뿐만아닌 파일이나 네트워크등.. 로그를 별도 위치에 남길 수있다
//로그 레벨? ->
// Fatal / Error 외부의 문제(API요청에 에러..!)/종료의 +외부 구분//
// 잠재적가능/ Warn/의도한 에러or상태변경과같은
// 정보성메세지 Info/
// 개발환경 //Debug/Trace
//왜 디버깅기능을 안쓰냐... 실서버 구동중에는 디버깅을 이용하기 힘드니까... 이럴때 로깅을 선택하는것 디버깅할수 있는 상황이라면 디버깅하숍!..
//진짜 간단한 요약 왜씀? log.~~쓰기 위해 달아놈 안달아노면 Logger 객체를 만들어야함
//아니라면 Logger ~ 해서 객체 생성해야함
@RestControllerAdvice
// 이것도 Controller랑 비슷하다 @RestController 있는것처럼 이것도 @RetControllerAdvice가 있는것...
//그러면 ControllerAdvice가 먼지 알아보자면... 간단히 설명하자면 @controller 붙은 클래스에서 발생한 예외를 잡아서 처리하겠다 이거임
//그러면 Rest는 ResponstBody가 결합된거 확인가능 ! 응답객체를 리턴해줄려면 이걸 사용 단순 예외처리면 ControllerAdvice만 사용ㅇ함
@ExceptionHandler(IllegalArgumentException.class)
//EXceptionHandler이다 ()안에 특정 예외클래스를 지정해주면 컨트롤러단에서 해당 예외가 발생했을때 아래의 메소드를 수행하겠다 이말임
@ResponseStatus(HttpStatus.BAD_REQUEST) /// 이게 필요했나 ~ 왜넣지..?
//상태코드를 400으로 집어넣어줌 .. https://velog.io/@davidko/API-Exception-%EC%B2%98%EB%A6%ACSpring 참고
return new ResponseEntity<>(
restApiException, // HTTP body 에 보날배분
HttpStatus.BAD_REQUEST //http state code 에 보낼부분 ㅎㅎ;;; ㅎㅎ;;
);
}
}
//반복되고 똑같은 작업들 ~ AOP(관심없고 반복되는 로직..) ...// 논란이 있다
//AOP냐 AOP가 아니냐 나는 AOP 한표
oneToMany 피할라고 했는데 deleteAll은 리스크가 크다 ?? 처음 알았네;;
delete...는 흠;; 가능한가..?
'TIL' 카테고리의 다른 글
| 23.01.09 [SQL] (0) | 2023.01.09 |
|---|---|
| 23.01.06 [KTP회고 및 발표] (0) | 2023.01.06 |
| 23.01.04 [줍줍...및 파람과 패스] (0) | 2023.01.05 |
| 23.01.03 [오류 및 이것저것] (0) | 2023.01.04 |
| 23.01.02 [시큐리티..AOP] (0) | 2023.01.02 |
Comments