3.5.1 예외 던지기
오류 조건을 신호로 보내려면 자바와 마찬가지로 throw 식에 예외 객체를 사용해야 한다. 문자열이 잘못된 경우 어떤 폴백(fallback) 값을 돌려주는 대신 오류를 발생시키도록 앞에서 본 parseIntNumber() 함수를 고쳐보자.
fun parseIntNumber(s: String): Int { var num = 0 if (s.length !in 1..31) throw NumberFormatException("Not a number: $s") for (c in s) { if (c !in '0'..'1') throw NumberFormatException("Not a number: $s") num = num*2 + (c - '0') } return num }
자바 vs. 코틀린 자바와 달리 코틀린에서는 클래스 인스턴스를 생성(여기서는 예외)할 때 new 같은 특별한 구문을 사용하지 않는다. 코틀린에서는 NumberFormatException("Not a number: $s")처럼 생성자 호출도 일반 함수 호출과 똑같이 생겼다.