본문 바로가기
반응형

예외처리7

[Spring Boot] : @ExceptionHandler 사용해 보기(1) API는 각 시스템마다 응답 양식과 스펙이 모두 다르다. 하지만 예외 상황에는 예외에 따라 각기 다른 데이터를 출력할 수 있어야 하고 같은 예외도 어떤 컨트롤러에서 발생했는지에 따라 다른 응답을 내려주는 등 세밀한 제어가 필요하다. 여러 API 예외 처리 문제를 해결하기 위해 @ExceptionHandler를 사용한다. 이 어노테이션은 ExceptionHandlerExceptionResolver라는 예외 처리 기능을 제공한다. 스프링은 ExceptionHandlerExceptionResolver를 기본 제공하고 기본 제공하는 ExceptionResolver 중에서도 우선 순위가 가장 높다. 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술을 참고하여 공부하였습니다. 2022. 3. 9.
[Spring Boot] : ExceptionResolver사용하기(2) DefaultHandlerException에 대해 공부했다. DefaultHandlerException는 스프링 내부에서 발생하는 예외를 해결하는데 파라미터 바인딩 시점에 타입이 맞지 않아 생기는 500오류를 HTTP 상태 코드 400오류로 바꿔준다. @GetMapping("/api/default-handler-ex") public String defaultException(@RequestParam Integer data) { return "ok"; } DefaultHandlerExceptionResolver.handleTypeMismatch를 보면 response.sendError()를 통해 문제를 해결한다. sendError(400)을 호출했기 때문에 WAS에서다시 오류 페이지를 내부 요청하게 된다... 2022. 3. 7.
[Spring Boot] : ExceptionResolver 사용하기(1) ExceptionResolver 사용하기(1) 스프링 부트가 기본적으로 제공하는 ExceptionResolver는 HandlerExceptionResolverComposite에 ExceptionHandlerExceptionResolver → ResponseStatusExceptionResolver → DefaultHandlerExceptionResolver 순으로 등록된다. ExceptionHandlerExceptionResolver는 @ExcpetionHandler을 처리한다. ResponseStatusExceptionResolver는 HTTP 상태 코드를 지정한다. DefaultHandlerExceptionResolver는 스프링 내부 기본 예외츨 처리한다. @ResponseStatus(code = .. 2022. 3. 6.
[TIL] : 129 일일 배움을 위한 Today I Learned ! Spring Boot API 예외처리 공부를 하고 있는 중 HandlerExceptionResolver에 대해 공부를 하게 되었다. 아직 다듬지 않아서 다음 강의에서 더 배울 것 같다. 2022.03.04 - [Framework/Spring Boot] - [Spring Boot] : HandlerExceptionResolver 시작하기 Docker 도커 스터디 진도에 맞게 공부했다. 도커 서비스에 대해 공부하기 시작했다. 2022.03.04 - [Server & System/Docker] - [Docker] : 스웜 모드 서비스 개념 2022.03.04 - [Server & System/Docker] - [Docker] : 서비스 생성하기 2022.03... 2022. 3. 4.
[Spring Boot] : HandlerExceptionResolver 시작하기 HandlerExceptionResolver 시작하기 IllegalArgumentException을 처리하지 못 해 컨트롤러 밖으로 넘어가는 일이 생길 때 HTTP 상태 코드를 400으로 처리하고 싶다고 가정하고 실습을 진행했다. if (id.equals("bad")) { throw new IllegalArgumentException("잘못된 입력 값"); } 먼저 ApiExceptionController를 수정해 주었다. HandlerExceptionResolver를 사용하면 컨트롤러 밖으로 던져진 예외를 해결하고 동작 방식을 변경할 수 있따. 줄여서 ExceptionResolver라고 부른다. @Slf4j public class MyHandlerExceptionResolver implements Ha.. 2022. 3. 4.
[TIL] : 127 일일 배움을 위한 Today I Learned ! R R언어를 처음 배우기 시작했다. 우선 설치하고 기초를 먼저 예습해봤다. 2022.03.02 - [프로그래밍언어/R] - [R] : R 설치하기 2022.03.02 - [프로그래밍언어/R] - [R] : 함수와 객체 이해하기 2022.03.02 - [프로그래밍언어/R] - [R] : 패키지, Package 2022.03.02 - [프로그래밍언어/R] - [R] : R에서 외부 데이터 읽어 들이는 다양한 방법 Docker 도커 스터디를 진행하면서 약속된 진도를 오늘도 완료했다. 4월 말 까지 마칠 예정이다. 2022.03.02 - [Server & System/Docker] - [Docker] : events, stats, system df 명령어 202.. 2022. 3. 2.
[Spring Boot] : Servlet Exception, 서블릿 예외 처리 시작하기 서블릿 예외 처리 시작 강의는 항상 점진적으로 발전해온 루트를 따라가기 때문에 시작 부분에서 먼저 스프링이 아닌 순수 코드를 통해 공부를 했다. 서블릿은 Exception과 response.sendError(HTTP 상태 코드, 오류 메시지) 이 두 방식으로 예외 처리를 한다. 내부에서 오류가 발생하면 500으로 Exception을 사용하고 그게 아니라 직접 뭔가 담아서 처리하고 싶으면 response.sendError에 담아 처리하면 된다. @GetMapping("/error-ex") public void errorEx() { throw new RuntimeException("예외 발생!"); } @GetMapping("/error-404") public void error404(HttpServletR.. 2022. 2. 24.
반응형