728x90
프로그램 코드를 작성하다 보면 해당 코드가 제대로 작동하지 못하고 중단되는 현상이 발생한다. 이것이 예외(Exception)이다.
따라서 프로그램을 실행할 때 발생할 수 있는 예외에 대비 즉, 예외 처리를 해야하는데 try 블록에서 발생한 예외를 catch 블록에서 잡아 처리한다.
try{
// 예외 발생 가능성이 있는 문장
} catch (e: 예외 처리 클래스) {
// 예외 처리
} finally {
// 반드시 실행되어야 하는 문장
}
finally 블록은 try 블록의 예외 발생 여부에 상관 없이 반드시 처리해야할 문장을 작성한다.
예를 들어 try블록에서 '파일 열기' 작업을 했다면 finally 블록에서는 반드시 '파일 닫기' 작업을 한다. 반드시 해야할 작업이 없다면 생략도 가능하다.
아래는 0으로 나누었을 때 발생하는 예외 상황을 처리하는 문장이다.
fun main(){
val a = 10
val b = 0
val c : Int
try{
c = a / b // 0으로 나눔
} catch (e : Exception) {
// 예외 처리
}
}
throw
앞서 try~catch 블록으로 예외를 처리했다면 throw 키워드는 의도적으로 예외를 발생시킬 수 있다.
throw Exception(message: String)
변수 a, b중 하나라도 0이라면 예외를 발생시키는 문장을 작성해보자
fun main() {
var a = 10
var b = 0
try {
Divide(a, b)
} catch (e: Exception) {
println(e.message)
}
}
fun Divide (a: Int, b: Int): Int {
if (a == 0 || b == 0)
throw Exception("0으로는 나눌 수 없습니다.")
else
return a / b
}
결과
// 0으로는 나눌 수 없습니다.
728x90
반응형
'Android > Kotlin' 카테고리의 다른 글
Kotlin :: Unit (0) | 2020.11.16 |
---|---|
Kotlin :: 흐름 제어 continue와 break, 레이블 (Label) (0) | 2020.10.27 |
Kotlin :: 반복문 do~while (0) | 2020.10.21 |
Kotlin :: 반복문 while (0) | 2020.10.21 |
Kotlin :: 조건문 when (0) | 2020.10.21 |
댓글