깨끗한 코드와 오류 처리는 연관성이 있다. 상당수 코드 기반은 전적으로 오류 처리 코드에 좌우된다. 여기서 좌우된다는 표현은 코드 기반이 오류만 처리한다는 의미가 아니다. 여기저기 흩어진 오류 처리 코드 때문에 실제 코드가 하는 일을 파악하기가 거의 불가능하다는 의미다.
[ 오류 코드보다 예외를 사용해라 ]
앞서 오류 코드보다 예외를 사용했을 때 더 깨끗한 코드가 됨을 설명했다.
[ Try-Catch-Finally 문부터 작성해라 ]
예외에서 프로그램 안에다 범위를 정의한다는 사실은 매우 흥미롭다. try-catch-finally문에서 try블록에 들어가는 코드를 실행하면 어느 시점에서든 실행이 중단된 후 catch 블록으로 넘어갈 수 있다.
어떤 면에서 try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지한다. 그러므로 예외가 발생할 코드를 짤 때는 Try-Catch-Finally 문으로 시작하는 편이 낫다.
[ 예외에 의미를 제공해라 ]
전후 상황을 충분히 덧붙여 오류 메시지에 정보를 담아 예외와 함께 던진다.
[ 호출자를 고려해 예외 클래스를 정의해라 ]
애플리케이션에서 오류를 정의할 때 프로그래머에게 가장 중요한 관심사는 '오류를 잡아내는 방법' 이 되어야 한다. 흔히 예외 클래스가 하나만 있어도 충분한 코드가 많다. 예외 클래스에 포함된 정보로 오류를 구분해도 괜찮은 경우가 그렇다. 한 예외는 잡아내고 다른 예외는 무시해도 괜찮은 경우라면 여러 예외 클래스를 사용한다.
[ 결론 ]
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아진다.
'Reading Book > Clean Code' 카테고리의 다른 글
[Clean Code]클린코드_9_단위 테스트 (0) | 2021.08.17 |
---|---|
[Clean Code]클린코드_8_경계 (0) | 2021.08.17 |
[Clean Code]클린코드_6_객체와 자료 구조 (0) | 2021.08.17 |
[Clean Code]클린코드_5_형식 맞추기 (0) | 2021.08.17 |
[Clean Code]클린코드_4_주석 (0) | 2021.08.16 |