Home Spring Boot Exception 효율적인 처리방식
Post
Cancel

Spring Boot Exception 효율적인 처리방식

Spring Boot Exception 효율적인 처리방식

홍정현감사합니다!

🎊 시작하기 전에..

일반적으로 Spring Boot에서 Exception을 처리하면, @ControllerAdvice를 이용해서 Exception을 Handling하는데, Exception을 throw할 때 throw new ~~Exception()로 throw한다.

위 상황으로 사용하고 있다고 가정하고 글을 읽어주기 바란다.

❓ 효율적으로 바꿔야하는 이유

Exception을 새로 생성할 때 trace가 생성되며 성능에 영향을 미칩니다. catch하지 못한 Exception이라면 trace가 필요하겠지만, Client Exception을 발생시킬 때는 의도하고 발생시킨 것이므로, trace가 예외를 만들 때마다 필요하지 않습니다.

♻ 효율적인 방법

Exception을 static variable로 만들어 Exception을 재사용 하는 방법입니다.

1
2
3
4
5
6
7
8
9
10
public class CustomException extends ServerException {
    
    public static final EXCEPTION = 
        new CustomException();
    
    private CustomException() {
        super(ErrorCode.CUSTOM_EXCEPTION);
    }
    
}

위와같이 class를 만들고, 사용하는 곳에서는 기존에 throw new가 아닌 throw를 합니다.

1
2
3
4
5
6
7
8
9
10
11
12
public class UserService {
    
    public void setInformation(String name) {
        ~~~
        throw new CustomException(); // 기존 방법
        throw CustomException.EXCEPTION; // 보다 효율적인 방법
    }
    
}


This post is licensed under CC BY 4.0 by the author.