코틀린 스터디/이펙티브 코틀린

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

막이86 2024. 2. 16. 13:30
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
      • 요소가 존재하지 않을 경우
728x90