//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 |