java exception handling 큰 그림

roon-replica·2022년 6월 14일
0

java

목록 보기
2/6
  • 레퍼런스

  • 동기
    소나 큐브에서 분석한 이슈를 해결하기 위해.
    finally 블록에서 throw, return하는 코드에 대한 수정 방안 생각 중 예외 처리 관련 복습

오버뷰

예를 들어 택배 회사에서 배달원이 잘못 배송한 경우, 회사는 re route해서 문제를 해결하듯
자바에서도 코드가 문제를 일으키면 exception handling해서 유저가 좋은 서비스를 계속 경험하도록 해야 함

코드가 웰빙하려면 unhappy path를 어떻게 처리하느냐에 달렸음
happy path만 있는 경우는 이상적인 상황뿐임

이상적인 상황 : 찾는 파일이 항상 파일 시스템에 존재, 네트워크 원활, JVM이 항상 충분한 메모리를 가지고 있음
이상적이지 않은 상황에 대비하지 않으면 어플리케이션이 멈춰버려서 문제

exception hierarchy

  • checked exception
    compiler가 예외 발생 여부를 알아낼 방법이 있다
    ex) IOException, ServletException, FileNotFoundException
    (file not found exception이 왜 checked exception인지)

  • unchecked exception (runtime)
    ex) NPE, illegalArgumentException

  • error
    virtual machine 수준 이상의 문제 발생
    ex) StackOverFlowError, OutOfMemoryError

exception hanlding 선택지

  • throw
  • try-catch-finally
  • re-throw
  • inheritance

anti patterns

  • swalllowing exceptions
  • throw, return in finally block
  • using throw as goto

https://4comprehension.com/sneakily-throwing-exceptions-in-lambda-expressions-in-java/

profile
집중 ➝ 프로세서↑ 시간 투자 ➝ 디스크↑

0개의 댓글