코틀린에서 모든 Exception 클래스는 Throwable
을 상속한다.
자바와 동일하게 try
… catch
로 exception 처리를 한다.
try {
// some code
} catch (e: SomeException) {
// handler
} finally {
// optional finally block
}
try
는 반환 값을 가질 수 있다.
val a: Int? = try { input.toInt() } catch (e: NumberFormatException) { null }
코틀린에는 checked exception이 존재하지 않는다.
프로젝트의 규모가 커질 경우 생산성을 하락시키고, 코드 퀄리티가 낮아진다는 것이 그 이유이다.
상호 운용성을 위해
@Throws
를 제공해 checked exception을 처리할 수 있도록 했다.