코틀린에서 try-catch는 식(expression)이다. 따라서 변수에 담을 수 있다!
자바에서 try-catch는 문(statement)이었기 때문에 예외 처리시 보통 다음과 같이 작성했다.
var input:Int? //foo함수를 사용하기 위해서 try-catch 밖에 변수를 선언해주어야 한다.
try {
input = readln().toInt()
} catch (e:Exception) {
input = null
}
foo(input)
하지만 코틀린에서는 변수에 할당할 수 있기 때문에 다음과 같이 변수에 바로 대입하여 사용할 수 있다.
val input = try {
readln().toInt() //성공시 대입
} catch (e:Exception) {
null //실패시 대입
}
foo(input)
try 블록 마지막 줄의 값 대입catch 블록 마지막 줄의 값 대입