독서/클린코드

[클린코드] 2022-03-04 TIL

콘요맘떼 2022. 3. 5. 00:43

TIL (Today I Learned)

2022.03.04

 

오늘 읽은 범위

7장. 오류 처리

 

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

  • try 블록에서 무슨 일이 생기든지 catch 블록은 프로그램 상태를 일관성 있게 유지해야 한다. (p.132)
  • 모든 예외를 잡아야하는 아주 중요한 라이브러리가 아니라면 확인된 예외는 코드의 유지보수성이나 캡슐화의 측면에서 효율적이지 못하다. (p.134)
  • 예외를 던질 때는 실패한 연산, 유형 등의 정보를 함께 첨부한다. 그러면 훨씬 수월하게 오류의 원인과 위치를 찾을 수 있다. (p.135)
  • 오류를 분류할 때에는 오류 자체의 유형보다는 오류에 대응하는 방식으로 분류하는 것이 좋다. (p.135)
  • 클래스를 만들거나 객체를 조작하여 특수 사례를 처리하면 (특수 사례패턴, Special Case Pattern) 특수 경우에 대한 예외 처리로 인해 코드의 흐름이 깨지는 것을 방지할 수 있다. (p.138)
  • 메소드에서 null을 반환하는 대신 예외를 던지거나 특수 사례 객체를 반환하자. null을 반환하면 NullPointerException이 발생하거나 null을 핸들링할 추가적인 코드가 필요하다. (ex. 어떠한 객체들을 반환해야 하는 아무런 값도 반환되지 않는다면 빈 리스트를 반환하자.) (p.139)
  • 오류 처리를 프로그램 로직과 분리하여 독자적 사안으로 고려하면 튼튼하고 깨끗한 코드를 작성할 수 있다. 코드의 유지보수성이 향상되며 독립적 추론이 가능해진다. (p.142)

 

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

  • 이전에 롤 전적 웹 애플리케이션을 만들 때 Express 서버단의 에러 핸들링과 관련하여 골치가 아팠던 적이 있다. 그 때 배운 경험이 있다면 에러를 처리하는 위치가 매우 중요하다는 것이었다. try-catch문을 적절한 곳에서 활용하지 않으면 에러 파악이나 코드의 수정이 정말 고치아파진다. 여태까지 내 경험들과 이번 챕터를 읽었을 때 가장 중요하게 느낀 것은 두 가지다. 첫째, 예외 처리는 기능 단위로 실시한다. 둘째, 예외를 분류할 때에는 그것을 어떻게 처리할지를 통해 분류한다. (물론 코드 로직상의 치명적인 문제가 아니라는 전제 하이다.)

 

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

  • 확인된 예외 (checked exception) : 프로그래밍에서 예외(Exception)은 정상적인 프로그램의 흐름에서 어긋나는 것을 의미한다. 예외 상황은 에러와 다르게 미리 예측할 수도, 핸들링할 수도 있다. 자바에서 예외는 확인된 예외(Checked Exception)와 확인되지 않은 예외(Unchecked Exception)으로 나눌 수 있다. RuntimeException을 상속하고 꼭 처리해야 하는 예외를 확인된 예외라고 부르며 명시적으로 처리하지 않아도 되는 예외를 확인되지 않은 예외라고 부른다.

'독서 > 클린코드' 카테고리의 다른 글

[클린코드] 2022-03-06 TIL  (0) 2022.03.07
[클린코드] 2022-03-05 TIL  (0) 2022.03.07
[클린코드] 2022-03-01 TIL  (0) 2022.03.02
[클린코드] 2022-02-28 TIL  (0) 2022.03.01
[클린코드] 2022-02-25 TIL  (0) 2022.02.26