개발공부/C#

[Effective C#] 아이템 45 : 메서드가 실패했음을 알리기 위해서 예외를 이용하라

개발자 찐빵이 2021. 12. 20. 22:26
728x90

메서드가 요청된 작업을 제대로 수행하지 않는 경우 예외를 발생시켜서 실패가 있음을 알려야 한다.

반환 코드를 이용하여 오류를 보고하는 방식보다 예외를 이용하는 방법이 더 나은 이유

  • 오류 코드를 이용하는 경우 사용자가 쉽게 무시할 수 있다.
  • 오류 코드를 검사하고 활용하는 코드 때문에 정상적인 실행 흐름을 방해한다.

그래도 일반적인 실행 흐름을 제어하는 메커니즘으로 예외를 사용해서는 안된다.

반환 코드 특징

  • 반환 코드를 이용하는 방식은 메서드의 원형에 영향을 미친다.
  • 반환 코드는 계산의 결과를 나타내는 용도로 사용되므로 오류가 발생했다는 사실 이외에 추가적인 정보를 전달하기 어렵다.
  • 메서드 호출자에 의해 처리된다.

예외 특징

  • 예외는 클래스 타입이므로 개발자가 자신만의 예외 타입을 파생시킬 수 있고, 오류에 대한 정보를 전달할 수 있다.
  • 콜 스택을 통해 적절한 catch 문이 구성된 위치까지 전파되므로 에러가 발생한 위치와 처리하는 부분을 분리하여 개발할 수 있다.
  • 분리하여 개발 시 예외 클래스를 사용하면 에러에 대한 세부 정보를 잃지 않을 수 있다.
  • 쉽게 무시하기 어렵다.
반응형