Cute Running Puppy
본문 바로가기
개발일기/Java

Spring MVC에서의 예외 처리 기법

by 징구짱 2023. 5. 31.
728x90

예외 처리 방법

@ExceptionHandler

컨트롤러 내에서 특정 예외를 처리하기 위해 사용한다. 이 어노테이션을 메서드에 적용하여 해당 예외가 발생했을 때 특정한 응답을 반환하거나 예외를 처리할 수 있다.

 

@ControllerAdvice

전역적인 예외 처리를 정의할 수 있다. 이 어노테이션이 적용된 클래스는 모든 컨트롤러에서 발생하는 예외를 처리하는 메서드를 가질 수 있다.

 

@ControllerAdvice + ExceptionHandler

특정 예외에 대한 전역적인 처리와 특정 컨트롤러에서 발생하는 예외에 대한 처리를 동시에 수행할 수 있다. 일부 에러만 처리하고 싶을 경우에는 따로 범위설정이 가능하다.

 

@ResponseStatus

특정 예외가 발생했을 때 반환되는 HTTP 응답 상태 코드를 지정할 수 있다. 예외 클래스에 이 어노테이션을 적용하고, 원하는 HTTP 상태 코드를 지정할 수 있다.

 

try/catch

예외가 발생할 수 있는 코드 영역을 try 블록 안에 작성하고, 예외가 발생했을 때 처리할 코드를 catch 블록 안에 작성하는 방식이다. 여러 개의 catch 블록을 사용하여 다양한 예외 타입에 대한 처리를 구현할 수 있다. 하지만 이 방식은 메서드마다 예외 처리 코드를 중복해서 작성해야 할 수도 있고, 코드의 가독성이 떨어질 수 있다.

 

 

예시에 대한 설명 참고할 블로그

https://velog.io/@kiiiyeon/%EC%8A%A4%ED%94%84%EB%A7%81-ExceptionHandler%EB%A5%BC-%ED%86%B5%ED%95%9C-%EC%98%88%EC%99%B8%EC%B2%98%EB%A6%AC

 

[스프링부트] @ExceptionHandler를 통한 예외처리

@ExceptionHandler는 Controller계층에서 발생하는 에러를 잡아서 메서드로 처리해주는 기능이다.Service, Repository에서 발생하는 에러는 제외한다.간단한 예시부터 살펴보자.이렇게 @Controller로 선언된 클

velog.io

 

728x90

'개발일기 > Java' 카테고리의 다른 글

Stack, Queue, Array, Linked List  (0) 2023.06.08
영속성 컨텍스트란  (0) 2023.06.01
의존성 주입(Dependency Injection, DI)  (0) 2023.05.31
객체지향 프로그래밍(OOP)  (0) 2023.05.30
테스트 코드 작성 삽질 기록  (0) 2023.04.21