재채기는 H

커스텀 예외처리 클래스 활용 본문

java

커스텀 예외처리 클래스 활용

에취~H 2022. 7. 17. 16:39
반응형

회사에서 개발을 하다 보니 1000라인이 넘는 복잡한 로직을 개발하게 되었다.

예외 처리를 걸어도 소스라인 워낙 길기 때문에 모든 부분을 디버그를 찍어보고 찾을 수밖에 없었다.

SRP 원칙대로 최소 기능별로 쪼개고 메서드마다의 예외 처리를 걸었지만 뱉어내는 오류를 찾기에는 아직도 어려웠다.

그렇기에 예외 처리를 모듈단위로 나눌 수 있는 방법이 없을까 고민하였다.

Exception 객체를 상속받은 커스텀 클래스를 던짐으로써, 어느 모듈에서 나오는 오류인지 확인하기로 하였다.

// Exception 상속받기
public class CustomException extends Exception{
	private static final long serialVersionUID = 1L;
	private final int ERR_CODE;

	public CustomException(String msg, int errCode){
		super(msg);
		ERR_CODE = errCode;
	}

	public CustomException(String msg){
		this(msg,100);
	}

	public int getErrCode() {
		return ERR_CODE;
	}
}


전달한 메세지와 에러코드를 가지는 생성자를 2가지를 만든다.

CustomException("msg");
CustomException("msg", errorCode);

msg만 넘길 경우, default한 errorCode값을 넘긴다.

파라미터는 다음과 같다.

  • msg : 오류에서 알려줄 메세지를 넘겨준다.
    • 추가적으로 e.getMessage(), e.toString(), e.printStackTrace()와 같은 에러 출력값도 append하여 넘겨주어 확인한다.
  • errorCode : 에러코드를 넘겨 직접 컨트롤할 수 있게 한다. 


FE에서 예외 객체를 받아 ErrorCode값에 따른 오류상태에 대한 제어(콘솔, 팝업, 스낵바, 텍스트 문구) 처리할 수 있게 되었다.


serialVersionUID는 자바의 직렬화(Serialize)와 역직렬화(De-serialize) 과정에서 관여하는 값이다.
관련해서 찾아보고 이해한 다음 사용하도록 하자.

반응형
Comments