개발서적

토프링 - 4장 정리

wugawuga 2022. 10. 2. 20:38

4장 정리

✔️ 초난감 예외처리는??

  • catch 로 잡아내는 것까지 좋은데 그 후에 아무것도 하지 않는 문제
  • 메세지를 찍어도 금방 묻혀버림

✔️ 예외의 종류와 특징?

  • Error
    • java.lang.Error 클래스의 서브클래스들
    • 에러는 시스템에 비정상적인 상황이 발생했을 경우에 발생
    • 주로 VM 에서 발생 (OutOfMemoryError, ThreadDeath)
    • 따라서 시스템 레벨에서 특별한 작업을 하는 것이 아니면 에러처리는 신경 안 써도 됨
  • Exception 과 체크예외
    • java.lang.Exception 클래스와 서브클래스로 정의되는 예외들
    • 개발자들이 만든 코드의 작업 중에 예외상황이 발생했을 경우에 사용
    • 체크예외와 언체크 예외로 구분
      • 체크 예외: Exception 서브 클래스면서 RuntimeException 상속 X
      • 언체크 예외: RuntimeException 상속
    • 체크 예외가 발생할 수 있는 메소드를 사용할 경우 반드시 예외 처리하는 코드 함께 작성

✔️ 재시도를 통해 예외 복구하는 코드??

  • 예외가 발생하면 일정시간동안 기다리고 재시도
  • 최대 횟수를 넘기면 예외를 발생

✔️ JDO???

  • java data objects
  • 처음보았는데 jpa vs jdo 라는 연관 검색어가 많이 뜨는데 설명이 어려워서 패스,,,

✔️ 인상 깊었던 점

DataAccessException 으로 전환해서 스프링 예외로 바꿔주는 것

spring 이 추상화를 통해서 만들어 놓으니 개발자들은 데이터베이스에 종속되지 않고 개발을 할 수 있다는 것이 인상깊다

❓ 예외처리 방법이 궁금합니다

  • 발생하는 예외마다 커스텀해서 작성을 하는지
  • 하나의 예외로 모두 모아서 에러코드와 메세지를 분리해서 작성을 하는지?

✅ 답변

토비님 : 커스텀 예외를 만드는 경우가 많다! 자바 표준 예외의 의미가 통한다면 그대로 쓰고,
그렇지 않을 때 커스텀을 만드는 게 좋다고들 한다. 후자의 경우도 있다.

파코님 : 커스텀 예외를 만들다보면 나중에 너무 많아져서 나중에 관리하기가 힘들어진다.
나중에 공통 예외 같은 파일로 관리하곤 하는데, 몇 달 지나면 건들기가 무섭도록 늘어나 있다.