- require, check, assert 함수를 사용한다면, 대부분의 코틀린 오류를 처리할 수 있음
- 하지만 이외에도 예측하지 못한 상황을 나태내야 하는 경우가 있음
inline fun <reified T> String.readObject(): T {
// ...
val result: Int
if (incorrectSign) {
throw JsonParsingException()
}
return result
}
- 위와 같이 표준 라이브러리에서 나타내는 적절한 오류가 없는 경우 사용자 정의 오류를 사용하는 경우도 있지만 가급적 직접 오류를 정의하기보단 표준 라이브러리의 오류를 사용하는 것이 좋음
- 잘만들어진 규약을 재사용하면 다른 사람들이 API를 더 쉽게 배우고 이해할 수 잇음
일반적으로 사용되는 예외
- IllegalArgumentException, IllegalStateException
- IndexOutOfBoundsException
- ConcurrentModificationException : 동시 수정을 금지했는데 발생했을 경우
- UnsupportedOperationException
- NoSuchElementException
'Reading Record > 이펙티브 코틀린' 카테고리의 다른 글
[이펙티브 코틀린] Item8. 적절하게 null을 처리하라 (0) | 2022.04.19 |
---|---|
[이펙티브 코틀린] Item7. 결과 부족이 발생할 경우 null과 failure를 사용하라 (0) | 2022.04.19 |
[이펙티브 코틀린] Item5. 예외를 활용해 코드에 제한을 걸어라 (0) | 2022.04.06 |
[이펙티브 코틀린] Item4. inferred 타입으로 리턴하지 말라 (0) | 2022.04.06 |
[이펙티브 코틀린] Item3. 최대한 플랫폼 타입을 사용하지 마라 (0) | 2022.04.06 |