스프링 MVC-14(API 예외 처리)

존스노우·2022년 3월 6일
0

SPRING-MVC

목록 보기
15/18

시작

다시살려주기

예외를 호출하면?

오류 페이지 컨트롤러도 JSON 응답 가능하게

추가해주자

정상 출력

런타임 익셉션 -> WebserVercustomiser -> /error-page/500

-> ErrorPageController 방금 만들어준 제이슨 부분 .

스프링 부트 기본 오류 처리

다시없애기

예외터짐 -> 서블릿컨테이너까지올라감 - > 스프링부트가 에러페이지 호출

->

이런식으로 된다.

url 기본은 /error

text/html 경우 이런 방식으로 ModelAndView 찾아서

아닌경우는?

ErrorPAgeController 와 흡사하다.

HandlerExcption 시작

예외가 발생해서 서블릿을 넘어 WAS 까지 예외가 전달되면 HTTP 상태코드가 500으로 처리됨 발생하는

예외 에 따라서 400 , 404 등등 다른 상태코드로 처리하고 싶다..

사용자가 아규먼트를 잘못보낼 때?

원래 500이 떠야됨.. 이미 해버려서 400이떠버렷는데 밑에서 계쏙 알아보자

예외를 해결해주는 해결자를 사용해보자.

빈모델엔뷰 보내주면 정상정상 리턴이다

웹 컨피그에서 extendhandler 추가해줘야됨

정상적으로 400 리턴됨.

was 는 샌드에러받고 에러페이지를 뒤짐

Ex 인경우도 resolveException이 호출되지만 아직코드를

추가하지 않아 따로 처리가 되지 않는다.

HandlerExceptionResolver 활용

지금까지는 컨트롤러 예외 WAS 까지.. 너무 복잡하다.

핸들러 익셉션 리졸버에서 다 해결해버리기.

Basic Error controller

스프링이 제공하는 ExceptionResolver1

예외 -> responseStatusException

애노테이션에 ..?

response.sendError 리턴 뉴 모델앤 뷰

메시지기능 제공

스프링이 제공하는 ExceptionResolver2

스프링 내부에서 발생하는 스프링 예외를 해결함

DefaulthandlerExceptionResolver

@ExceptionHandler

그러나 상태코드가 200?

정상흐름이 되버리네..

추가로 ? 예외상태 코드도 바꿔줘야된다 .

파라미터와 응답

https://docs.spring.io/spring-framework/docs/current/reference/html/web.html#mvc-ann- exceptionhandler-args

ControllerAdvie

컨트롤러에 있는 것들을 한 곳에서 모아서 처리 해준다.

profile
어제의 나보다 한걸음 더

0개의 댓글