사용자 정의 오류보다는 표준 오류를 사용하라
표준 라이브러리에 적절한 오류가 없을 때 사용자 정의 오류를 나타낸다. 하지만 가능하다면 직접 정의하는 것보다 많은 개발자가 알고 있는 표준 라이브러리의 오류를 최대한 사용하는 것이 좋다.
일반적으로 사용되는 예외는 다음과 같다.!
IllegalArgumentException, IllegalStateException : 아이템 5에서 다뤘던 require, check를 써서 throw할 수 있는 예외
IndexOutOfBoundsException : 인덱스 파라미터 값이 범위를 벗어났다는 걸 나타낸다. 일반적으로 컬렉션이나 배열과 함께 사용
ConcurrentModificationException : 동시 수정을 금지했는데 발생했다는 걸 나타낸다
UnsupportOperationException : 사용자가 사용하려고 했던 메서드가 현재 객체에선 사용할 수 없다는 걸 나타낸다. 기본적으로 사용할 수 없는 메서드는 클래스에 없는 게 좋다. (하지만 listOf는 immutable임을 경고하기 위해 무조건적으로 오류를 발생하는 메서드를 남겨놓는다.)
NoSuchElementException : 사용자가 사용하려고 했던 요소가 존재하지 않음을 나타낸다
잘봤습니다.