프로그램 실행 중 발생하는 예상치 못한 사고에 대비하는 ‘에어백’과 같은 존재, 예외 처리(Exception Handling)의 올바른 설계 습관과 전략을 분석한다.
전략적 예외 대응: try-catch-finally
단순히 에러를 막는 것이 아니라, 사고 발생 시의 복구 시나리오를 작성하는 과정이다.
- 구체적 Catch: 모든 에러를 하나로 뭉뚱그리지 말고 명확한 타입을 지정하여 대응한다.
- 자원 관리:
finally나using을 활용하여 어떤 예외 상황에서도 자원 해제를 보장한다.
예외 전파와 정보 보존
에러를 상위 호출자로 다시 던질 때, 원래의 발생 지점(Stack Trace) 정보를 유실하지 않는 것이 중요하다.
C#에서는 throw ex; 대신 throw;를 사용하는 습관이 필수적이다.
사용자 친화적 설계
시스템의 기술적인 에러 로그와 사용자가 확인하는 안내 메시지는 분리되어야 한다.
보안을 위해 내부 정보를 감추면서도 사용자가 다음 행동을 결정할 수 있는 가이드를 제공해야 한다.
P.S
정교한 예외 설계는 소프트웨어의 견고함을 결정짓는 핵심 지표다.
사고 발생을 가정하고 시스템의 안정적인 흐름을 유지하기 위한 방어적 설계 능력을 길러야 하는 것 같다.