Til. Kotlin 예외 처리문

Devback·2021년 5월 12일
0
post-custom-banner


개발을 하다보면 하루에도 수십번 씩 코드가 제대로 동작하지 않고 중단이 된다. 이러한 것을 예외라고 한다. 코드를 짤 때 발생할 수 있는 예외에 대비를 해야하는데, 이러한 것을 예외처리라고 한다.오늘은 이러한 예외를 처리하는 구문을 연습했다. 구문이 어렵지 않지만 쓸모가 많다.

예외가 발생하는 이유들

  • 운영체제의 문제(잘못된 시스템 호출의 문제)
  • 입력값의 문제(ex. 존재하지 않는 파일 또는 숫자 입력란에 문자 입력)
  • 받아들일 수 없는 연산 (ex. 0으로 나누기)
  • 메모리의 할당 실패 및 부족

예외처리 문장 try.. catch.. finally

  • try 블록 안에서는 예외 발생 가능성이 있는 코드를 작성
  • catch에서는 예외 처리하기 위한 코드를 작성
  • finally에서는 반드시 실행되어야 하는 코드를 작성

try {
	예외 발생 가능성이 있는 문장
} catch(e: 예외처리 클래스 이름) {
	예외를 처리하기 위한 문장
} finally {
	반드시 실행되어야 하는 문장 
}

예시) 0으로 나누었을 때 예외 처리

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가 잡아서 처리합니다.

그 외의 공부하면 좋을 것들

사용자 정의 예외를 공부하면 좋을 것 같다.

profile
나랑 같이 개발할 사람🖐
post-custom-banner

0개의 댓글