# 아이템 6. 사용자 정의 오류보다는 표준 오류를 사용하라

가능하면 직접 오류를 정의하는 것 보다는 최대한 표준 라이브러리의 오류를 사용하는 것이 좋다. 표준 라이브러리의 오류는 많은 개발자가 알고 있기 때문에 이것을 재사용하면 많은 사람들이 API를 더 쉽게 이해할 수 있다.

일반적으로 사용하는 예외는 다음과 같다.

* `IllegalArgumentException`, `IllegalStateException` : `require`, `check`를 사용해 throw 할 수 있는 예외
* `IndexOutOfBoundsException` : 인덱스 파라미터 값이 범위를 벗어났다는 예외
* `ConcurrentModificationException` : 동시 수정(concurrent modification)을 금지했는데 발생했을때 예외
* `UnsupportedOperationException` : 사용자가 사용하려던 메서드를 현재 객체에선 사용할 수 없을때 예외
* `NoSuchElementException` : 사용자가 사용하려던 요소가 존재하지 않을때 예외
