7. 오류 처리

오류 처리는 프로그램에 반드시 필요한 요수 중 하나일 뿐이다. 뭔가 잘못될 가능성은 늘 존재한다. 뭔가 잘못되면 바로 잡을 책임은 바로 우리 프로그래머에 있다.

오류 처리로 인해 프로그램 논리를 이해하기 어려워진다면 깨끗한 코드라 부르기 어렵기 때문에, 우아하고 고상하게 오류를 처리하는 기법과 고려사항 소개

오류 코드보다 예외를 사용하라

오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 더 깔끔해진다.

Try-Catch-Finally 문부터 작성하라

Try 블록에서 무슨일이 생기든 catch블록은 프로그램 상태를 일관성있게 유지할 수 있다.

미확인 예외를 사용해라

확인된 예외는 ocp를 위반한다. 왜냐하면 하위단계에서 오류가 발생하면 상위 단계 메서드 선언부를 전부 고쳐야 하기 때문에.

예외에 의미를 제공하라

예외를 던질때는 전후 상황을 충분히 덧붙여서 오류가 발생한 원인과 위치를 찾기 쉽게 만든다.

호출자를 고려해 예외클래스를 정의하라

예를들면 호출하는 라이브러리 API를 감싸서 예외 유형 하나를 반환하게 한다. 외부 API를 사용할때는 감싸기 기법이 최선이다. 외부 API를 감싸면 외부 라이브러리와 프로그램 사이에서 의존성이 크게 줄어들기 때문이다.

정상 흐름을 정의하라

특수사례패턴을 활용하라. 특수 사례 패턴이란 클래스를 만들거나 객체를 조작해 특수 사례를 처리하는 방식이다.

null을 반환하지 마라

NULL을 반환하는 코드는 일거리를 늘릴뿐만 아니라 호출자에게 문제를 떠넘기므로, 사용하려는 api 가 NULL을 반환한다면 감싸기 메서드를 구현해 예외를 던지거나 특수 사례 객체를 반환하는 방식을 고려한다.

null을 전달하지 마라

메서드로 null을 전달하지 마라.

결론

깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다.

image

#노개북 #노마드코더 #개발자북클럽