내일배움캠프 29일차 TIL - ExceptionHandler

2024. 5. 28. 16:58·⛺스파르타코딩클럽

240528

오늘의 학습 

    ●  1. @ExceptionHandler

    ●  2. @RestControllerAdvice

 

@ExceptionHandler

@ExceptionHandler 는 스프링의 예외처리를 위한 애너테이션이다.

기본적으로 스프링에서 예외가 터지면 모든 작업을 종료하고 해당 스레드는 더 이상의 작업을 수행하지 않고 스레드 풀로 돌아가게 된다. 이때, 예외 상황을 중간에 캐치 즉, 가져가서 임의대로 response를 줄 수 있게 해주는 애너테이션 이다.

이 후 스레드가 반납이 된다. 해당 애너테이션은 예외가 발생한 클래스 내에서만 처리가 가능하다. 

 

해당 클래스 내에서의 예외만을 자동으로 잡아주는 역할을 한다. @ExceptionHandler() 인자로 예외가 터질 수 있는 예외 클래스 타입을 넣어주면 알아서 인식을 해서 예외 발생 시 해당 메서드를 호출을 해준다.

메서드 인자로는 기본적으로 예외의 해당하는 정보를 인자로 받을 수 있다.

public MyClass {
	@ExceptionHandler(NullPointerException.class)
    public ResponseEntity<Void> nullPointerException(nullPointerException ex) {
    return new ResponseEntity<>(HttpStatus.NOT.FOUND);
    }

    @ExceptionHandler(CoustomException.class)
    public ResponseEntity<Void> coustomException() {
    return new ResponseEntity<>(HttpStatus.NOT.FOUND);
    }
    //..
    //.. 예외 발생
}

 

@RestControllerAdvice

@ExceptionHandler의 예외처리에 대한 범위를 넓혀주는 애너테이션이다.

@RestControllerAdvice 애너테이션을 사용을 하려면 클래스 범위에 @RestControllerAdvice 애너테이션을 지정을 해줘야 한다. 지정을 해주고 난 뒤 해당 클래스의 메서드 영역에 @ExceptionHandler를 통해 예외를 처리해주면 된다.

프로젝트 전 범위의 예외를 처리를 해주기 때문에 예외 관리 및 가독성이 매우 좋다는 장점이 있다고 생각한다!

@RestControllerAdvice
public class MyExceptionHandler {

	@ExceptionHandler(NullPointerException.class)
    public ResponseEntity<Void> nullPointerException() {
    	return new ResponseEntity<>(HttpStatus.NOT.FOUND);
    }
    
    @ExceptionHandler(CoustomException.class)
    public ResponseEntity<Void> coustomException() {
    	return new ResponseEntity<>(HttpStatus.NOT.FOUND);
    }
}

 

# 오늘의 회고

오늘은 ExceptionHandler에 대해서 알게 되었고 직접 과제에 넣어서 사용을 해보았다.

시도를 많이하다보니까 좀 예외처리에 대해서도 좀 익숙해지고 ExceptionHandler를 어떻게 사용해야하는지 익숙해졌다.

내일은 과제에 JWT를 넣어서 과제를 할 예정이다. 

'⛺스파르타코딩클럽' 카테고리의 다른 글

내일배움캠프 31일차 TIL - 책 리뷰 및 개인 과제 질문  (2) 2024.05.30
내일배움캠프 30일차 TIL - JWT(Stateless)  (1) 2024.05.29
내일배움캠프 28일차 TIL - Filter  (0) 2024.05.27
내일배움캠프 27일차 TIL - JWT  (1) 2024.05.24
내일배움캠프 26일차 TIL - JPA핵심 및 관계, 3계층 분리  (3) 2024.05.23
'⛺스파르타코딩클럽' 카테고리의 다른 글
  • 내일배움캠프 31일차 TIL - 책 리뷰 및 개인 과제 질문
  • 내일배움캠프 30일차 TIL - JWT(Stateless)
  • 내일배움캠프 28일차 TIL - Filter
  • 내일배움캠프 27일차 TIL - JWT
junbin2
junbin2
java.lang.NullPointerException
  • junbin2
    bin's Development Diary
    junbin2
  • 전체
    오늘
    어제
    • 전체보기 (167)
      • 🎓방송통신대학교 (33)
        • ⚙️컴퓨터의 이해 (11)
        • 💻컴퓨터과학 개론 (3)
        • 🔢자료구조 (4)
        • 🌍유비쿼터스 컴퓨팅 (11)
        • 🏛️세계의정치와경제 (3)
        • 🖥️컴퓨터과학과 (1)
      • 🛠️Backend (58)
        • 📚백엔드 공부 (4)
        • ☕Java (23)
        • 🌳Spring (13)
        • ⚙️C (2)
        • ⚡Python (13)
        • JavaScript (1)
        • 🛢️Database (0)
        • Algorithm Problem Solving (2)
      • 🌐 Network (7)
        • 📜HTTP (7)
      • 🚀DevOps (1)
      • ⛺스파르타코딩클럽 (64)
      • 정보 (2)
      • 정리가 필요한 글 (2)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    파이썬
    운영체제
    방송통신대학교
    자료구조
    컴퓨터의 이해
    Python
    자바
    입출력
    배열
    spring
    유비쿼터스
    유비쿼터스 컴퓨팅개론
    컴파일러
    Spring Framework
    방통대
    클라우드
    Java
    스프링
    방송대
    유비쿼터스 컴퓨팅
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
junbin2
내일배움캠프 29일차 TIL - ExceptionHandler
상단으로

티스토리툴바