본문 바로가기
개발&프로그래밍

[Kotlin] runCatching 완벽 정리: 예외 처리도 간결하게!

by 재아군 2025. 6. 16.

Kotlin runCatching 완벽 정리: 예외 처리도 간결하게!


Kotlin에서 예외 처리 시 try-catch를 깔끔하게 대체할 수 있는 runCatching 문법을 쉽고 실용적으로 정리합니다.

실무 활용 예시도 함께 확인해보세요.

runCatching 완벽 정리: 예외 처리도 간결하게!


블로그 글 목차

  1. Kotlin에서 예외 처리는 왜 고민일까?
  2. runCatching이란 무엇인가요?
  3. 기본 문법과 사용 예제
  4. onSuccess와 onFailure 활용 방법
  5. getOrNull, getOrElse, getOrDefault 차이점
  6. runCatching 실무 활용 팁
  7. 간결한 코드의 힘

 

Kotlin에서 예외 처리는 왜 고민일까?

개발을 하다 보면 가장 빈번하게 마주치는 코드 중 하나가 try-catch입니다. 하지만 try-catch는 종종 코드의 가독성을 떨어뜨리고, 로직을 흐트러뜨릴 수 있죠.

그런 고민을 해결해주는 Kotlin의 스마트한 기능, 바로 runCatching입니다.


runCatching이란 무엇인가요?

runCatching은 Kotlin 표준 라이브러리에 포함된 고차 함수로, 코드 블록에서 발생할 수 있는 예외를 깔끔하게 처리할 수 있도록 도와줍니다. 내부적으로 try-catch를 래핑(wrapping)하는 형태로 작동하며, 결과는 Result<T> 타입으로 반환됩니다.

val result = runCatching {
    someFunctionThatMayThrow()
}

기본 문법과 사용 예제

val result = runCatching {
    "123".toInt()
}

println(result) // Success(123)

예외가 발생하면 자동으로 Failure(Exception) 객체로 감싸주며, 발생하지 않으면 Success(value)로 반환합니다.


onSuccess와 onFailure 활용 방법

예외 여부에 따라 각각의 후속 처리도 onSuccess, onFailure로 체계적으로 할 수 있습니다.

runCatching {
    "abc".toInt()
}.onSuccess {
    println("변환 성공: $it")
}.onFailure {
    println("예외 발생: ${it.message}")
}

if-else보다 훨씬 직관적이고 선언적이죠!


getOrNull, getOrElse, getOrDefault 차이점

  • getOrNull(): 성공 시 값, 실패 시 null
  • getOrElse {}: 실패 시 지정된 기본 값 반환
  • getOrDefault(value): 실패 시 지정된 고정 값 반환
val value = runCatching { "abc".toInt() }.getOrElse { -1 }
println(value) // -1

runCatching 실무 활용 팁

  1. API 응답 파싱 시 에러 처리
  2. 로그 기록 및 사용자 메시지 분리
  3. CoroutineScope와 함께 비동기 예외 처리도 깔끔하게 사용 가능
runCatching {
    fetchDataFromServer()
}.onFailure {
    log.error("API 에러", it)
}

 

간결한 코드의 힘

Kotlin의 runCatching은 단순한 문법 이상의 가치를 제공합니다. 가독성, 유지보수성, 안정성까지 챙길 수 있는 훌륭한 도구죠.

예외 처리를 한층 더 세련되게 만들고 싶은 분이라면, 지금 바로 프로젝트에 적용해보세요!


 

댓글