예외처리
코틀린의 모든 예외 클래스는 최상위 예외 클래스인 Throwable을 상속한다.
자바에서는 Checked Exception은 compile Error가 발생하기 때문에 무조건 try-catch로 감싸거나, throws로 예외를 전파 해야한다.
try {
Thread.sleep(1);
} catch (InterruptedException e) {
//예외 처리
}
코틀린은 Checked Exception을 강제하지 않는다.
아래의 코드는 코틀린에서 컴파일 오류가 발생하지 않는다.
Thread.sleep(1);
fun main() {
try {
throw Exception()
}catch(e: Exception) {
println("에러 발생!") //에러 발생!
}
finally{
println("finally 실행!") //finally 실행!
}
//kotlin은 표현식 형태로서 try catch문이 가능하다.
val a = try {
"1234".toInt()
} catch (e: Exception) {
println("예외 발생 !")
}
println(a) //1234
//직접 Exception을 할려면 throw를 사용할 수 있다.
//throw Exception("예외 발생") //run창에 빨간 text로 : 예외 발생! 출력
val b : String? = null
val c = b ?: failFast("a is null")
println(c?.length)
//Noting에서 발생하면 아래 코드는 실행되지 않는다.
println("이 메세지는 출력 안됨 ")
}
fun failFast(message: String): Nothing {
throw IllegalArgumentException(message) //throw를 리턴하게 되면 Nothing 타입을 반환
}
출처 : FastCampus
'Kotlin' 카테고리의 다른 글
Kotlin.07 자바와 코틀린의 차이점 (0) | 2023.04.02 |
---|---|
Kotlin.06 클래스와 프로퍼티 (0) | 2023.04.02 |
Kotlin 04. 널 참조 (0) | 2023.04.02 |
Kotlin 03. 흐름제어 (0) | 2023.04.02 |
Kotlin 02. 함수 (0) | 2023.04.02 |