오늘 TIL 3줄 요약
- 오류 코드보다 예외를 사용하라.
- Try-Catch-Finally 문부터 작성하라.
- null을 반환하지 마라
TIL (Today I Learned) 날짜
2022. 05.06
오늘 읽은 범위
7장 오류 처리
책에서 기억하고 싶은 내용을 써보세요.
- 위와 같은 방법을 사용하면 호출자 코드가 복잡해진다. 함수를 호출한 즉시 오류를 확인해야 하기 때문이다. 불해이도 이 단계는 잊어버리기 쉽다. 그래서 오류가 발생하면 예외를 던지는 편이 낫다. 그러면 호출자 코드가 더 깔끔해진다. 노리가 오류 처리 코드와 뒤썩이지 않으니까.
- 코드가 예외를 던지므로 이제는 테스트가 성공한다. 이 시점에서 리팩터링이 가능하다. catch 블록에서 예외 유형을 좁혀 실제로 FileInputStream 생성자가 던지는 FileNotFoundException을 잡아낸다. 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그럼녀 자연스럽게 try 블록의 트랜잭션 범위부터 구현하게 되므로 범위 내에서 트랜잭션 본질을 유지하기 쉬워진다.
- 위 코드는 null 확인이 누락된 문제라 말하기 쉽다. 하지만 실상은 null 확인이 너무 많아 문제다. 메서드에서 null을 반환하고픈 유혹이 든다면 그 대신 예외를 던지거나 특수 사례 객체를 반환한다.
- 깨끗한 코드는 일기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다
오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요
- 절차지향 프로그래밍과 다르게 OOP 에서는 좀 더 배워야 될 개념이 들이 많은 것 같다. throws 를 던져 에외 처리를 하는 경우가 그것인데 , 가독성을 높이기 위해서 논리 로직과 에러 로직을 분리할 수 있다. 가독성을 높일 수 있는 여러 케이스를 스터디해서 적용하면 좋을 것 같다.
궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.
- 특별히 없다.
오늘 읽은 다른사람의 TIL
'IT > Clean Code 도전' 카테고리의 다른 글
10장 클래스 (0) | 2022.05.11 |
---|---|
8장 경계 , 9장 단위 테스트 (0) | 2022.05.07 |
6장 객체와 자료구조 (0) | 2022.05.03 |
5장 형식 맞추기 (0) | 2022.05.02 |
4장 주석 (0) | 2022.04.29 |