- 오류가 발생하면 예외를 던진다.
- 함수를 호출하는 쪽에서 예외 처리 가능
- 코틀린의 예외 처리 예시
val percentage =
if (number in 0 .. 100)
number
else
throw IllegalArgumentException(
"A percentage value must be between 0 and 100: $number"
)
- 코틀린은 자바와 마찬가지롤 예외 처리를 위해
try
,catch
,finally
절을 함께 사용
import java.io.BufferedReader
import java.io.StringReader
fun readNumber(reader: BufferedReader): Int?{
try{
val line = reader.readLine()
return Integer.parseInt(line)
}
catch(e: NumberFormatException){
return null
}
finally{
reader.close()
}
}
fun main(){
val reader = BufferedReader(StringReader("239"))
println(readNumber(reader)) // 239
}
- 코틀린은 체크 예외와 언체크 예외 구별 X
try
를 식으로 사용
import java.io.BufferedReader
import java.io.StringReader
fun readNumber(reader: BufferedReader){
val number = try{
Integer.parseInt(reader.readLine())
}
catch(e: NumberFormatException){
null
}
println(number)
}
fun main(){
val reader1 = BufferedReader(StringReader("239"))
readNumber(reader1) // 239
val reader2 = BufferedReader(StringReader("not a number"))
readNumber(reader2) // null
}
try
키워드는if
나when
가 마찬가지로 식이다.try
의 값을 변수에 대입 가능
참조
KOTLIN IN ACTION
'코틀린' 카테고리의 다른 글
[코루틴] runBlocking (0) | 2023.07.05 |
---|---|
Iteration (0) | 2023.01.26 |
선택 표현과 처리 (0) | 2023.01.25 |
클래스와 프로퍼티 (0) | 2023.01.25 |
함수와 변수 (0) | 2023.01.25 |