본문 바로가기
컴퓨터 언어/Kotlin

[Kotlin] try-catch문을 활용한 예외 처리 (finally)

by 웅대 2022. 12. 7.
728x90

코틀린에서도 다른 언어와 비슷하게 try-catch문을 사용하여 예외를 처리할 수 있다.

 

예를 들어 문자열을 입력받아서 이를 정수로 반환하는 함수가 있다고 해보자.

fun toInt(str:String):Int{
    return str.toInt()
}

 

파라미터로 "123"이 전달된다면 문제가 없지만 "abc"가 된다면 toInt() 메소드에서 에러가 발생한다.

 

만약 숫자가 아닌 문자가 들어왔다면 -1을 반환하도록 처리해주기 위해서는 다음과 같이 try-catch문을 사용하면 된다.

fun toInt(str:String):Int{
    try{
        return str.toInt()
    }catch(e:NumberFormatException){
        return -1
    }
}

try 구문에서는 실질적인 코드를 작성하면 되고 여기서 에러가 발생한다면 try 구문내에서는 에러를 던지게 된다.

 

catch 구문에서는 문자 그대로 try 구문 내에서 던진 에러를 받아서 처리한다고 보면 된다.

 

위의 코드 같은 경우 try 구문 내에서 NumberFormatException을 던지게 되면 이를 받아서 -1을 반환하도록 처리한다.

 

에러의 종류도 여러가지 있으므로 catch문을 여러 번 사용하여 발생할 가능성이 있는 에러들을 모두 처리할 수도 있다.

 

try-catch 말고도 fianlly 구문도 사용할 수 있다.

 

이 finally 구문은 에러 발생 여부와 상관없이 무조건 실행되는 구문이다.

fun toInt(str:String):Int{
    try{
        return str.toInt()
    }catch(e:NumberFormatException) {
        return -1
    }finally{
        println("hello!")
    }
}

위의 경우 무조건 "hello!"라는 문자열을 출력하는 함수이다.

 

보통 try 내에서 사용된 것들을 정리할 때 사용되곤 한다.

728x90
반응형

댓글