require, check, assert 함수를 사용하면, 대부분의 코틀린 오류를 처리할 수 있습니다. 하지만 이외에도 예측할지 못한 상황을 나타내야 하는 경우가 있습니다. 예를 들어 Json 형식을 피시아는 라이브러리를 구현한다고 해 봅시다. 기보적으로 입력된 Json파일의 형식에 문제가 있다면 JSONParsingException등을 발생 시키는 것이 좋습니다.
inline fun <reified T> String.readOBJect(): T{
// ...
if(incorrectSign){
throw JsonParsersingException()
}
// ...
return result
}
표준라이브러리를 사용하면 다른사람들이 더 쉽게 배우고 이해할수 있습니다.
일반적으로 사용되는 예외
- IllegalArgumentException과 IllegalStateException: require와 check를 사용해 throw할 수 있는 예외입니다.
- IndexOutOdBoundsException: 인덱스 파라미터의 값이 범위를 벗어났다는 것을 나타냅니다 일반적으로 컬렉션 또는 배열과 함께 사용합니다. 예를들어 ArrayList.get(Int)를 사용할 때 throw 됩니다.
- ConcurrentModificationException: 동시 수정(concurrent modification)을 금지했는데, 발생해 버렸다는 것을 나타냅니다
- UnsupportedOperationException: 사용자가 사용하려고 했던 메서드가 현재 객체에서는 사용할 수 없다는 것을 나타냅니다 기본적으로는 사용할 수 없는 메서드는 클래스에 없는 것이 좋습니다.
- NoSuchElementException: 사용자가 사용하려고 했던 요소가 존재하지 않음을 나타냅니다. 예를들어 내부에 요소가 없는 Iterable에 대해 next를 호출할 때 발생합니다.
728x90