Glacier's Daily Log

runCatching { } 과 Result Type 본문

Coding/Android

runCatching { } 과 Result Type

h__glacier_ 2024. 1. 24. 19:56
반응형
  • Kotlin 1.3에 속하는 캡슐화 블록
  • 예외처리시 사용.
val targetJob: Result<String>

...

if(targetJob.isSuccess){ it: String -> 
	//성공시 호출됨 
}

if(targetJob.isFailure){ it: Throwable ->
	// 실패(오류)시 호출됨
}

 

  • Result<> 타입에서 가독성 좋게 값 가져오기
    • targetJob.getOrThrow()
      • → runCatching문 내에서 성공시엔 성공값,  에러가 발생한 경우 해당 에러 리턴

    • targetJob.getOrDefault(defaultValue = "Unknown")
      • → runCatching문 내에서 성공시엔 성공값, 에러가 발생한 경우 defaultValue 파라미터를 리턴

    • targetJob.getOrNull()
      • → runCatching문 내에서 성공시엔 성공값,  에러가 발생한 경우 Null을 리턴함.

    • targetJob.map { }.getOrThrow()
      • → 성공인 경우 원하는 값으로 맵핑
반응형
Comments