해당 포스팅은 인프런에서 제공하는 최태현 님의 '자바 개발자를 위한 코틀린 입문'을 수강한 후 정리한 글입니다. 유료 강의를 정리한 내용이기에 제공되는 예제나 몇몇 내용들은 제외하였고, 정리한 내용을 바탕으로 글 작성자인 저의 언어로 다시 작성한 글이기에 서술이 부족하거나 잘못된 내용이 있을 수 있습니다. 그렇기에 해당 글은 개념에 대한 참고 정도만 해주시고, 강의를 통해 학습하시기를 추천합니다.
fun parseIntOrThrow(str : String): Int {
try {
return str.toInt()
} catch (e : NumberFormatException) {
throw IllegalArgumentException("${str}은 숫자가 아닙니다.")
}
}
위의 예제와 같이 Java에서의try-catch
문과 큰 차이는 없다. 단 타입이 뒤에 위치하고, new 키워드를 사용하지 않는다는 차이가 존재한다.
fun parseIntOrThrow(str : String): Int? {
return try {
str.toInt()
} catch (e : NumberFormatException) {
null
}
}
또한 try-catch
문 또한 표현식(expression)이기 때문에 구문 자체를 return
할 수 있다.
Kotlin에는 throws
구문이 없다. Checked Exception
과 Unchecked Exception
을 구분하지 않고 모든 예외를 Unchecked Exception
으로 간주하기 때문이다.
Kotlin에는 try with resources
구문이 존재하지 않고 use
라는 inline 확장 함수를 사용해야 한다. use
함수 사용시 close
는 내부에서 처리해준다.
fun readFile(path: String) {
BufferedReader(FileReader(path)).use { reader ->
println(reader.readLine())
}
}