레퍼런스
동기
소나 큐브에서 분석한 이슈를 해결하기 위해.
finally 블록에서 throw, return하는 코드에 대한 수정 방안 생각 중 예외 처리 관련 복습
예를 들어 택배 회사에서 배달원이 잘못 배송한 경우, 회사는 re route해서 문제를 해결하듯
자바에서도 코드가 문제를 일으키면 exception handling해서 유저가 좋은 서비스를 계속 경험하도록 해야 함
코드가 웰빙하려면 unhappy path를 어떻게 처리하느냐에 달렸음
happy path만 있는 경우는 이상적인 상황뿐임
이상적인 상황 : 찾는 파일이 항상 파일 시스템에 존재, 네트워크 원활, JVM이 항상 충분한 메모리를 가지고 있음
이상적이지 않은 상황에 대비하지 않으면 어플리케이션이 멈춰버려서 문제
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
https://4comprehension.com/sneakily-throwing-exceptions-in-lambda-expressions-in-java/