오류 코드를 사용하면 함수를 호출하고 바로 오류를 확인해야 합니다.
이렇게 될 경우 메인 로직(정상 케이스)과 오류 처리 코드가 뒤섞이게 됩니다.
예외에 오류 메시지를 같이 던져 실패한 연산, 유형 등을 알 수 있도록 해야합니다.
호출자를 고려하여 필요한 예외 클래스를 따로 정의해서 넘겨주는게 좋습니다.
외부 API를 사용할 때는 Wrapper 클래스로 감싸주는게 좋습니다.
클래스나 객체가 예외적인 상황을 캡슐화해서 처리하게 하면 클라이언트 코드에서 예외 처리를 할 필요가 없게됩니다.
이를 특수 사례 패턴이라 부릅니다.
null을 반환하는 것을 지양해야 합니다.
사용하는 외부 API가 null을 반환할 경우 메서드로 감싸서 예외를 던지거나 특수 사례 객체를 반환하도록 합니다.
예시로 리스트를 반환하는 경우 null 대신 빈 리스트를 반환하도록 할 수 있습니다.
null을 전달하는 것을 지양해야 합니다.
주로 사용하는 언어(C#, kotlin)에서는 확인된 예외(Checked Execption)를 지원하지 않기 때문에 확인된 예외가 무슨 말인지 따로 찾아보기 전까지 이해하기 힘들었던게 아쉬웠네요.
kotlin 같은 경우 null 처리를 언어차원에서 지원해주기 때문에 관련된 패턴을 따로 정리하는게 좋아보입니다.