어디서 예외 처리를 하실 건가요?

가언·2024년 7월 24일

예외처리를 어디서 하는게 좋을까?

나는 예외 처리를 예외가 발생한 메소드에서 바로바로 처리하는 것이 더 좋다고 생각한다.
그 이유는...

  • 예외 처리를 모아서 한번에 처리하는 로직은 발생한 에러들을 계속 가지고 있어야 하기 때문에 성능 저하와 메모리 사용의 문제 발생
  • 반면, 에러가 발생한 클래스에서 바로 에러 처리를 하게 된다면, 에러를 놓치지 않고 꼼꼼히 처리 가능
  • 또, 코드를 읽을 때 어떻게 에러를 처리했는지 바로 파악 가능하다는 점까지!
    그 외의 장점들이 있겠지만, 개발자 입장에서 에러 처리 코드를 구현할 생각을 하니깐 중복된 로직이 많을 것 같다는 단점이.....있을 것 같네용..ㅎ

그럼 위 방법 외에 어떤 방법들이 있을까?

에러처리 위치

  1. 로컬 (함수 내부) 예외 처리
  2. 중간 레벨 (모듈 또는 클래스 레벨) 예외 처리
  3. 글로벌 (전체 애플리케이션 레벨) 예외 처리

이렇게 3가지 방법이 있고, 위에서 내가 언급한 방법은 1번에 속하는 거겠져,,?!

그럼 이 세가지 방법의 장단점에 대해 공부한 후, 나의 주장이 달라질 수도 있다는 생각이 막 드네용..!

에러처리 1번 예시

public Room getRoom(int id) {
	RoomfoundRoom=roomTable.get(1d)://0W있지모르고쓸때예외가터짐
	try{
		if(foundRoom! =null)
			return roomTable.get(id);
		else
			throw new NoSuchElementException ("No room!");
	}catch (NoSuchElementException e){
		return new Room;
	}

NO room! 메시지가 출력되었다.

에러처리위치의 장단점

로컬 (함수 내부) 예외 처리

  • 장점: 즉각적 처리, 세밀한 제어, 지역적 범위
  • 단점: 중복 코드, 복잡성 증가

중간 레벨 (모듈 또는 클래스 레벨) 예외 처리

  • 장점: 코드 재사용성, 모듈화
  • 단점: 추적 어려움, 일관성 부족

글로벌 (전체 애플리케이션 레벨) 예외 처리

  • 장점: 중앙 관리, 일관된 처리, 로깅 및 모니터링
  • 단점: 지연된 대응, 상세 정보 부족, 복잡한 제어 흐름

음....각 방법마다 장단점이 너무 뚜렷해서 프바프(프로젝트 바이 프로젝트) 상바상(상황바이상황)인것 같습니당

.
.
.
그럼 다음 블로그에서 상황에 따라 어떻게 예외처리를 하는지 포스팅해볼게요!!
많관부😝
다음 블로그

profile
@gari_guri

2개의 댓글

comment-user-thumbnail
2024년 7월 24일

근데 짱구는 ..... 되게 처리하기 싫어하는거 같은데요ㅠㅠ?
어떻게 설득하시게요?

1개의 답글