728x90
이펙티브 코루틴을 요약한 내용입니다.
- require, check, assert 함수를 사용하면 대부분의 코틀린 오류를 처리할 수 있음
- 예측하지 못한 상황을 나타내야 하는 경우가 있음
- ex) JSON 형식을 파싱하는 라이브러리의 오류
- 가능한 JSONParsingException을 발생하는 것이 좋음
inline fun <reified T> String.readObject(): T { if (incorrectSign) { throw JSONParsingException() } return result }
- 표준 라이브러리에는 적절한 오류가 없으므로 사용자 정의 오류를 사용
- 가능하다면, 직접 오류를 정의하는 것보다는 최대한 표준 라이브러리의 오류를 사용하는 것이 좋음
- 많은 개발자가 알고 있으므로 재사용하는 것이 좋음
- 일반적으로 사용되는 예외
- IllegalArgumentException, IllegalStateException
- require와 check를 사용해 throw 할 수 있는 예외
- IndexOutBoundsException
- 인덱스 파라미터의 값이 범위를 벗어 났을 경우
- 컬렉션 또는 배열과 함께 사용
- ConcurrentModificationException
- 동시 수정을 금지 했는데 발생한 경우
- UnsupportedOperationException
- 현재 객체에서 사용할 수 없을 경우
- NoSuchElementException
- 요소가 존재하지 않을 경우
- IllegalArgumentException, IllegalStateException
728x90
'코틀린 스터디 > 이펙티브 코틀린' 카테고리의 다른 글
아이템8) 적절하게 null을 처리하라 (0) | 2024.02.23 |
---|---|
아이템7) 결과 부족이 발생한 경우 null과 Failure를 사용하라 (0) | 2024.02.22 |
아이템5) 예외를 활용해 코드에 제한을 걸어라 (0) | 2024.02.14 |
아이템4) inferred 타입으로 리턴하지 말라 (0) | 2024.02.08 |
아이템3) 최대한 플랫폼 타입을 사용하지 말라 (0) | 2024.02.07 |