개발을 하다보면 하루에도 수십번 씩 코드가 제대로 동작하지 않고 중단이 된다. 이러한 것을 예외라고 한다. 코드를 짤 때 발생할 수 있는 예외에 대비를 해야하는데, 이러한 것을 예외처리라고 한다.오늘은 이러한 예외를 처리하는 구문을 연습했다. 구문이 어렵지 않지만 쓸모가 많다.
try {
예외 발생 가능성이 있는 문장
} catch(e: 예외처리 클래스 이름) {
예외를 처리하기 위한 문장
} finally {
반드시 실행되어야 하는 문장
}
fun main() {
val a = 6
val b = 0
val c : Int
try {
// 예외가 발생할수도 있는 코드를 작성
// 정수를 0으로 나누었기 때문에 예외가 발생한다.
c = a/b
} catch(e: Exception) {
// 예외에 대한 처리
println("Exception is handled.")
} finally {
println("finally 블록은 반드시 항상 실행된다")
}
}
// 결과
// Exception is handled
// finally 블록은 반드시 항상 실행된다
throw Exception(message: String)
fun main() {
var amount = 600
try {
amount -= 100
checkAmount(amount)
} catch (e: Exception){
println(e.message)
}
println("amount: $amount")
}
fun checkAmount(amount: Int) {
if(amount < 1000) {
throw Exception("잔고가 $amount 으로 1000 이하입니다.")
}
}
// 실행결과
// 잔고가 $amount 으로 1000 이하입니다.
// amount: 500
amount가 1000 이하이니 예외를 발생시키고 main함수의 catch가 잡아서 처리합니다.
사용자 정의 예외를 공부하면 좋을 것 같다.