life is egg

23.01.05 [예외처리 탐구..] 본문

TIL

23.01.05 [예외처리 탐구..]

삶은계란진재혁 2023. 1. 5. 21:30

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