개발자 99% 커뮤니티에서 수다 떨어요!
오늘 TIL 3줄 요약
Try-Catch-Finally 문을 이용해 오류 처리를 프로그램 논리와 분리하라
정상 흐름을 정의해 예외적 상황을 처리할 필요가 없게 하라
nul을 반환, 전달 하지 마라
TIL (Today I Learned) 날짜
2022.03.04
오늘 읽은 범위
7장. 오류처리
책에서 기억하고 싶은 내용을 써보세요.
오류 코드보다 예외를 사용하라
논리가 오류 처리 코드와 뒤 섞이지 않으므로 호출자 코드가 더 깔끔해진다.
Try-Catch-Finally 문부터 작성하라
try 블록은 트랜잭션과 비슷하다. try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다.
호출자를 고려해 예외 클래스를 정의하라
애플리케이션에서 오류를 정의할 때 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법이 되어야 한다.
정상 흐름을 정의하라
특수 사례 패턴(SPECIAL CASE PATTERN) : 클래스를 만들거나 객체를 조작해 특수 사례를 처리하는 방식. 클래스나 객체가 예외적인 상황을 캡슐화해서 처리하므로 클라이언트 코드가 예외적인 상황을 처리할 필요가 없다.
null을 반환하지 마라
메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다.
null을 전달하지 마라
대다수의 프로그래밍 언어는 호출자가 실수로 넘기는 null을 적절히 처리하는 방법이 없다.
결론
깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다.
오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다.
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
try-catch를 어떻게 해야할 지도 어려웠는데 특수 사례 패턴을 이용하는 걸 배웠으니 이것도 고려하게 되면 더 생각할게 많아질 것 같다. 안정적으로 코드를 짠다는게 엄청 어려운 일이구나 생각했다. 해당 값이 null인지 아닌지에 대한 확인을 하는 경우가 많았는데 null값에 대한 처리는 애초에 null 을 반환 혹은 전달하지 않도록 짜여 있었으면 해결 되는 문제 였다는 깨달음을 얻었다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
TDD : Test Driven Development의 약자로 '테스트 주도 개발'이라고 한다. 반복 테스트를 이용한 소프트웨어 방법론으로 작은 단위의 테스트 케이스를 작성하고 이를 통과하는 코드를 추가하는 단계를 반복하여 구현한다.
OCP(Open Closed Principle) : 개방-폐쇄 원칙은 '소프트웨어 개체는 확장에 대해 열려 있어야 하고, 수정에 대해서는 닫혀 있어야 한다'는 프로그래밍 원칙이다.
오늘 읽은 다른사람의 TIL