- 오늘 배운 키워드
- 예외 / 예외 처리
- 옵셔널 (Optional)
- 예외
- 예외의 종류는 Exception(체크예외)/RuntimeException(언체크예외)
- RuntimeException->컴파일러가 확인하지 않음 = UncheckedException -> 런타임때까지 확인되지않는다
- Exception = CheckedException = 예외처리를 컴파일러가 인지해줌 ->처리문 없다면 붉은 줄로 표시됨
- 예외는 try-catch로 처리된다
- 예외는 상위로 전이되기 때문에 거쳐가는 구간에서 처리를 해줘야한다
- CheckedException의 경우 상위에서 처리하고 싶다면, CheckedException이 발생하는 메서드에 throws Exception을 표시해주어야 한다.
- 결론 어쨋든 예외가 발생하면 상위에서 하든, 예외가 발생하는 곳에서 하든 처리를 해줘야 한다.
- 그럼 왜 두 개의 예외를 나눌까?
당연한 모든 케이스들에 대해서 checkedException(강제처리)로한다면? 모든 걸 catch블럭으로 예외처리를 하는 것은 생산성 낭비다!
- Optional
- Optional은 null을 안전하게 다루기 위해서 존재한다.
- Null을 유발할 수 있는 생성자가 존재한다면, Optional 클래스를 통해서 명시적으로 표현을 해주어야하고, 리턴값 또한 Optional로 조정해야한다