if (percentage !in 0..100){
throw IllegalArgmentException(
"A percentage value must be between 0 and 100: $percentage")
}
val pecentage =
if(num in 0..100) number
else
throw IllegalArgmentException(
"A percentage value must be between 0 and 100: $percentage")
자바와 마찬가지로 예외처리를 하려면 try,catch,finally 절을 함께 사용한다.
-이 코드는 파일에서 각 줄을 읽어 수로 변환하되 그 줄이 올바른 형태가 아니면 null 을 반환하는 예제이다.
fun readNumber(reader:BufferedReader):Int?{
try {
val line = reader.readLine()
return Integer.parseInt(line)
}catch (e:NumberFormatException){
return null
}finally {
reader.close()
}
}
val reader = BufferedReader(StringReader("239"))
println(readNumber(reader))
>>>239
fun readNumber(reader:BufferedReader){
val num = try {
Integer.parseInt(reader.readLine())
} catch (e: NumberFormatException) {
null
}
println(num)
}
val reader = BufferedReader(StringReader("not a number"))
println(readNumber(reader))
>>>null
위 코드는 예외가 만족하면 문자열 숫자를 반환하고 아닐 경우 예외처리가 될 경우 null을 반환한다.
1. 식 안에서는 마지막 문장이 리턴값이 된다.