[kotlin] 예외 처리와 에러 핸들링 방법

코틀린은 안전한 프로그래밍을 지향하는 언어이며, 에러 핸들링을 위한 다양한 기능을 제공합니다. 이번 포스트에서는 코틀린에서의 예외 처리와 에러 핸들링 방법을 살펴보겠습니다.

1. 예외 처리

코틀린에서는 자바와 마찬가지로 예외를 처리하기 위해 try, catch, finally 키워드를 사용합니다.

try {
    // 예외 발생이 예상되는 코드 블록
    val result = 10 / 0
} catch (e: ArithmeticException) {
    // 예외가 발생했을 때 처리할 코드 블록
    println("Error: ${e.message}")
} finally {
    // 예외 발생 여부와 상관없이 항상 실행되는 코드 블록
    println("Finally block")
}

위의 예제에서 try 블록 안에서 예외가 발생하면, catch 블록이 실행되고, finally 블록은 예외 발생 여부와 상관없이 실행됩니다.

2. 에러 핸들링

코틀린은 Nullable 타입, throw 키워드 및 @Throws 어노테이션 등을 활용하여 에러 핸들링을 지원합니다.

2.1 Nullable 타입

Nullable 타입을 사용하여 반환값이 null일 수 있는 함수의 결과를 에러 핸들링할 수 있습니다.

fun findUser(id: Int): User? {
    return if (id == 1) User(id, "John") else null
}

val user: User? = findUser(1)
if (user != null) {
    // 유저가 존재하는 경우의 처리
} else {
    // 유저가 존재하지 않는 경우의 처리
}

2.2 throw 키워드

throw 키워드를 사용하여 에러를 직접 던질 수 있습니다.

fun validateInput(input: String) {
    if (input.isEmpty()) {
        throw IllegalArgumentException("Input cannot be empty")
    }
}

2.3 @Throws 어노테이션

자바와의 호환성을 위해 @Throws 어노테이션을 사용하여 메서드 내에서 발생할 수 있는 예외를 명시할 수 있습니다.

@Throws(IOException::class)
fun readFile(fileName: String) {
    // 파일 읽기 작업 수행
}

참고 자료:

이상으로 코틀린에서의 예외 처리와 에러 핸들링 방법에 대해 알아보았습니다. 안전하고 효율적인 코드를 작성하기 위해 다양한 예외 처리 기법을 적극적으로 활용해보시기 바랍니다.