[kotlin] 예외 처리시 예외 타입별로 다른 로직 처리

Kotlin에서는 try, catch 블록을 사용하여 예외를 처리할 수 있습니다. 특정 예외 타입에 대해 다른 로직을 처리해야 하는 경우 when 표현식을 사용하여 각 예외 타입에 맞는 처리를 수행할 수 있습니다.

예외 처리 기본 구문

아래는 Kotlin에서 기본적인 예외 처리 구문의 예시입니다.

try {
    // 예외가 발생할 수 있는 코드
    throw SomeException()
} catch (e: SomeException) {
    // SomeException에 대한 처리
} catch (e: AnotherException) {
    // AnotherException에 대한 처리
} finally {
    // 예외 발생 여부와 관계없이 항상 실행되는 코드
}

예외 타입별로 다른 로직 처리하기

특정 예외 타입에 따라 다른 동작을 해야 하는 경우 when 표현식을 사용할 수 있습니다.

예를 들어, FileNotFoundException 에 대해서는 파일이 존재하지 않을 때의 동작을, IOException 에 대해서는 파일에 접근할 수 없는 등의 다른 동작을 수행해야 할 때 다음과 같이 처리할 수 있습니다.

try {
    // 파일 읽기 등의 동작 수행
} catch (e: FileNotFoundException) {
    // 파일이 존재하지 않을 때의 처리
} catch (e: IOException) {
    // 파일에 접근할 수 없을 때의 처리
}

예외 타입이 동일한 처리

catch 블록에서 여러 예외 타입에 대해 같은 처리를 수행해야 할 때 when 표현식을 사용할 수 있습니다.

try {
    // 동작 수행
} catch (e: FileNotFoundException | e: IOException) {
    // 파일 관련 예외에 대한 처리
} 

위의 코드에서 FileNotFoundExceptionIOException에 대해 동일한 처리를 수행하고 있습니다.

Kotlin을 사용하여 예외를 처리할 때 각 예외 타입에 따라 다른 동작을 수행하는 방법을 살펴보았습니다. 이러한 유연한 예외 처리 구문을 통해 안정적이고 강력한 애플리케이션을 구현할 수 있습니다.

참고 문헌