개발자 99% 커뮤니티에서 수다 떨어요!
TIL (Today I Learned)
// 2022.03.04
오늘 읽은 범위
// 7장. 오류 처리
책에서 기억하고 싶은 내용을 써보세요.
오류 처리는 프로그램에 반드시 필요한 요소 중 하나일 뿐이다. 입력 이 이상하거나 디바이스가 실패할지도 모르기 때문이다. 간단히 말해, 뭔가 잘 못될 가능성은 늘 존재한다.(p.130)
어떤 면에서 try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든 지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. 그러므로 예외가 발생할 코드를 짤 때는 try-catch-finally 문으로 시작하는 편이 낫다. 그러면 try 블록에서 무슨 일이 생기든지 호출자가 기대하는 상태를 정의하기 쉬워진다(p.132)
예외를 던질 때는 전후 상황을 충분히 덧붙인다. 그러면 오류가 발생한 원인과 위치를 찾기가 쉬워진다.(p.135)
LocalPort 클래스처럼 ACMEPort를 감싸는 클래스는 매우 유용하다. 실제로 외 부 API를 사용할 때는 감싸기 기법이 최선이다. 외부 API를 감싸면 외부 라이브 러리와 프로그램 사이에서 의존성이 크게 줄어든다. (p.137)
메서드에서 null을 반환하는 방식도 나쁘지만 메서드로 null을 전달하는 방식은 더 나쁘다.(p.140)
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다.(p.142)
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
초심자일 땐 오류처리에 대한 부분을 전혀 신경쓰지 않았는데 앞으로 두려워하지 말고 능숙하게 써보도록 해야겠다는 생각이 든다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.