꿀똥벌레
꿀똥벌레 개발 블로그
꿀똥벌레
전체 방문자
오늘
어제
  • 분류 전체보기 (90)
    • JAVA (17)
    • SPRING (14)
    • Elasticsearch (4)
    • GRADLE (2)
    • HTML, CSS (0)
    • JAVASCRIPT (0)
    • GIT (1)
    • Vue.js (1)
    • server (1)
    • Python (0)
    • IT리뷰 (0)
    • 인프라 (6)
    • IOS (21)
    • 디자인패턴 (20)
    • Kafka (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • connectionRequestTimeout
  • elasticsearch
  • KEEPALIVE
  • 인덱스 템플릿
  • SWIFT
  • Index Template
  • springintegration
  • persistence connection
  • 스프링 인테그레이션
  • ES
  • 스프링 인티그레이션
  • mappings
  • maxConnPerRoute
  • maxConnTotal
  • spring integration
  • Index
  • spring
  • persistent connection
  • 엘라스틱서치
  • java

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
꿀똥벌레

꿀똥벌레 개발 블로그

SPRING

spring 예외 핸들링

2020. 11. 22. 00:50

1. @ControllerAdvice, @RestControllerAdvice 를 적용한 전역 예외 핸들링 설정 클래스

@RestControllerAdvice 
public class GlobalExceptionHandler {
  //@ResponseStatus(HttpStatus.UNAUTHORIZED)
  @ExceptionHandler(value = ExpiredJwtException.class)
  public ResponseEntity handleBaseException(HttpServletRequest request, ExpiredJwtException e) {
    return ResponseEntity.status(HttpStatus.UNAUTHORIZED).body("token expired!");
  }
}
  • @RestControllerAdvice 어노테이션을 적용한 설정파일으로 GlobalExceptionHandler클래스를 사용 하였다.
  • @ExceptionHandler의 파라미터로 정의된 exception 클래스가 발생했을시 해당 에러 핸들링이 수행된다.
  • @ResponseStatus 는 에러핸들링 메소드가 return 값을 별도로 갖지 않아도 클라이언트 단으로 정의한 HTTP에러코드를 보내준다. 현재는 별도로 RESPONSE에 BODY를 담아 보내며 STATUS 값도 정의해 리턴해 주었기 때문에 주석
  • @ControllerAdvice와 @RestControllerAdvice의 차이점은 RestControllerAdvice는 에러와 관련된 내용을 자동으로 json형태로 클라이언트로 내려준다. (@ResponseBody 가 디폴트로 추가된 형태)

 

2. @ExceptionHandler 를 이용한 Controller단의 예외 핸들링

  • 1번사항에서 적용한 @ExceptionHandler ~~ 구문을 내가 적용할 컨트롤러에 별도로 삽입해주면 해당 컨트롤러 에서만 에러 핸들링이 적용된다.

 

'SPRING' 카테고리의 다른 글

Spring Rest Docs 사용법  (0) 2021.05.02
Spring Batch  (0) 2021.04.28
Spring RestTemplate  (0) 2021.04.20
스프링 비동기 타임아웃 설정 변경  (0) 2020.11.23
SpringBoot 에서 mobile리졸버 추가하기  (0) 2020.10.27
    꿀똥벌레
    꿀똥벌레
    개발자 꿀똥벌레 입니다.

    티스토리툴바