본문 바로가기
학습 log (이론)/kotlin

Kotlin기초 'Exception 처리'

by abbear25 2019. 10. 27.
//runtime exception
var eventErr = 0
try{
    1 / eventErr
} catch(e: ArithmeticException){
    println(e)
} finally {
    println("exec")
}

//compile exception
var f = File("xml/test.xml")
try{
    val pw = FileInputStream(f)
}catch(e: FileNotFoundException){
    e.printStackTrace()
}

var num : Int? = null
var eventErr2 = num + 100 //에러 발생

//로직으로 null 처리
if ( num != null) {
    var eventErr2 = num + 100 //정상동작
}
//프로그램 종료되도록 null 처리
var eventErr2 = num!! + 100

//실행되지 않도록 null 처리
var eventErr2 = num?.let {
    it + 100
}

 

ERROR

메모리 부족, stack overflow 등의 복구 불가능한 심각한 오류

JVM 실행에 문제가 발생, 예외처리 불가능

 

Exception

사용자의 잘못된 조작, 코딩의 오류

예외처리 가능

컴파일 Exception

  DataFormatException, SqlException, IOException

런타임 Exception

  ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, OutOfMemoryException

  컴파일러가 체크하지 않으므로 개발자의 경험에 의해 처리되어야 할 예외

 

kotlin은 로직으로 null 처리 권장

kotlin은 Java와 달리 Check Exception을 권장하지 않음

반응형

'학습 log (이론) > kotlin' 카테고리의 다른 글

Kotlin기초 '함수형 프로그래밍'  (0) 2019.11.06
Kotlin기초 '객체'  (0) 2019.11.03
Kotlin기초 'Collection'  (0) 2019.10.24
Kotlin기초 'label'  (0) 2019.10.21
Kotlin 기초 '제어문'  (0) 2019.10.20