Community

개발자 99% 커뮤니티에서 수다 떨어요!

← Go back
TIL 7장. 오류 처리
#clean_code
2년 전
603

오늘 TIL 3줄 요약

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

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

  • 예외에 의미를 제공하라

TIL (Today I Learned) 날짜

2022.03.02

오늘 읽은 범위

7장. 오류 처리

책에서 기억하고 싶은 내용을 써보세요.

오류는 항상 존재한다. 그 오류를 바로 잡을 책임은 우리 프로그래머에게 있다.

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

  • 예외를 사용함으로 인해 가독성과 코드 품질 두 마리 토끼를 잡을 수 있다.

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

💡 어떤 면에서 try 블록은 트랜잭션과 비슷하다.

  • try 블럭에서 어느 시점에서든지 실행이 중단된다면 catch 블록으로 넘어간다.

  • catch 블록은 try 블록에서 무슨 일이 생기든 프로그램 상태를 일관성 있게 유지해야 한다.

  • 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장한다. 그러면 자연스레 try 블록의 트랜잭션 범위부터 구현하게 되므로 범위 내에서 트랜잭션 본질을 유지하기 쉬워진다.

예외에 의미를 제공하라

  • 오류 메시지에 정보를 담아 예외와 함께 던져라. 호출 스택만으로는 부족하다. 실패한 연산 이름과 실패 유형도 언급하라.

  • 로깅 기능을 사용해 로그릴 기록하면 더 좋다.

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

  • 오류를 정의할 때 프로그래머에게 가장 중요한 관심사는 오류를 잡아내는 방법이 되어야 한다.

깨끗한 코드는 읽기도 좋아야 하지만 안정성도 높아야 한다. 이 둘은 상충하는 목표가 아니다. 오류 처리를 프로그램 논리와 분리해 독자적인 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. 오류 처리를 프로그램 논리와 분리하면 독립적인 추론이 가능해지며 코드 유지보수성도 크게 높아진다.

오늘 읽은 소감은? 떠오르는 생각을 가볍게 적어보세요

try catch를 사용하면 이상하게 코드가 꼬인다는 느낌을 받았었는데, try catch 문을 잘못 사용하고 있었기 때문이었다.

try 문안에 또 다른 try catch 문을 중첩해서 사용하고 있었던 바보 같은 나...

왜 그렇게 사용했을까?

혼자 개발하다 보니 알려주는 이가 없어 이럴 때 너무 쓸쓸함을 느낀다.

궁금한 내용이 있거나, 잘 이해되지 않는 내용이 있다면 적어보세요.

  • 직렬화(Serialization)

    • 자바 시스템 내부에서 사용되는 객체 또는 데이터를 외부의 자바 시스템에서도 사용할 수 있도록 바이트(byte) 형태로 데이터 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술(역직렬화)을 아울러서 이야기합니다.

  • OCP(Open Closed Principle)

    • 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다.

오늘 읽은 다른사람의 TIL

바빠서 읽어보지 못했습니다. ㅠㅠ