Bird
Raised Fist0
Kotlinprogramming~5 mins

RunCatching for safe execution in Kotlin - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is RunCatching in Kotlin?

runCatching is a Kotlin function that helps you run code safely by catching exceptions automatically. It wraps the code block and returns a Result object that holds either the success value or the exception.

Click to reveal answer
beginner
How do you get the successful result from a RunCatching block?

You can use getOrNull() to get the result if it succeeded, or null if there was an exception. Alternatively, use getOrElse { defaultValue } to provide a fallback value.

Click to reveal answer
intermediate
What does onFailure do when used with RunCatching?

onFailure lets you run code only if the runCatching block caught an exception. It is useful for logging errors or handling failures without stopping the program.

Click to reveal answer
beginner
Write a simple example of RunCatching that safely divides two numbers and returns 0 if division fails.
val result = runCatching { 10 / 0 }.getOrElse { 0 }
println(result) // Output: 0
Click to reveal answer
intermediate
Why is RunCatching preferred over traditional try-catch blocks?

runCatching makes code cleaner and more readable by wrapping try-catch logic into a single expression. It also provides useful functions to handle success and failure in a functional style.

Click to reveal answer
What does runCatching return after executing a block?
AA Result object containing success or failure
BThe raw value or throws exception
CAlways null
DBoolean true or false
Which function gets the value or returns a default if there was an exception?
AgetOrNull()
BgetOrElse { default }
ConFailure { }
DrunCatching { }
How can you run code only when runCatching catches an exception?
AUsing onSuccess { }
BUsing getOrElse { }
CUsing onFailure { }
DUsing getOrNull()
What will runCatching { 5 / 0 }.getOrNull() return?
Anull
B0
C5
DThrows exception
Which is NOT a benefit of using runCatching?
ACleaner code than try-catch
BFunctional style error handling
CEasy chaining of success/failure handlers
DAutomatically fixes bugs
Explain how runCatching helps in safe execution of code in Kotlin.
Think about how it replaces try-catch and what it returns.
You got /4 concepts.
    Describe how you can handle both success and failure cases using runCatching.
    Consider the functions available on the Result object.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of runCatching in Kotlin?
      easy
      A. To execute code and catch exceptions safely without crashing the program
      B. To run code only if a condition is true
      C. To create a new thread for running code
      D. To convert a value to a string safely

      Solution

      1. Step 1: Understand what runCatching does

        runCatching runs a block of code and catches any exceptions that happen inside it.
      2. Step 2: Identify the main purpose

        This helps keep the program running smoothly by handling errors safely without crashing.
      3. Final Answer:

        To execute code and catch exceptions safely without crashing the program -> Option A
      4. Quick Check:

        runCatching = safe execution [OK]
      Hint: runCatching catches errors to keep code safe [OK]
      Common Mistakes:
      • Thinking runCatching runs code conditionally
      • Confusing runCatching with threading
      • Assuming it converts types automatically
      2. Which of the following is the correct syntax to use runCatching in Kotlin?
      easy
      A. val result = runCatching -> someFunction()
      B. val result = runCatching(someFunction())
      C. val result = runCatching { someFunction() }
      D. val result = runCatching.someFunction()

      Solution

      1. Step 1: Recall the syntax of runCatching

        runCatching takes a lambda block with curly braces to run code safely.
      2. Step 2: Match the correct syntax

        val result = runCatching { someFunction() } uses curly braces and calls someFunction() inside, which is correct.
      3. Final Answer:

        val result = runCatching { someFunction() } -> Option C
      4. Quick Check:

        runCatching uses braces { } [OK]
      Hint: Use curly braces {} to pass code block to runCatching [OK]
      Common Mistakes:
      • Using parentheses instead of braces
      • Trying to call runCatching like a function with arrow
      • Accessing runCatching as an object
      3. What will be the output of this Kotlin code?
      val result = runCatching { 10 / 0 }
      println(result.isSuccess)
      medium
      A. true
      B. null
      C. Exception thrown
      D. false

      Solution

      1. Step 1: Analyze the code inside runCatching

        The code tries to divide 10 by 0, which causes an exception (ArithmeticException).
      2. Step 2: Understand runCatching result

        runCatching catches the exception, so no crash happens. The isSuccess property will be false because the block failed.
      3. Final Answer:

        false -> Option D
      4. Quick Check:

        Exception caught means isSuccess = false [OK]
      Hint: Divide by zero causes failure, so isSuccess is false [OK]
      Common Mistakes:
      • Expecting true because code runs
      • Thinking exception is thrown outside runCatching
      • Confusing isSuccess with isFailure
      4. Identify the error in this Kotlin code using runCatching:
      val result = runCatching {
          val number = "abc".toInt()
      }
      println(result.getOrNull())
      medium
      A. No error, prints null because conversion fails
      B. Throws NumberFormatException outside runCatching
      C. Syntax error in runCatching block
      D. getOrNull() returns the string "abc"

      Solution

      1. Step 1: Understand the code inside runCatching

        Trying to convert "abc" to Int causes NumberFormatException, but runCatching catches it.
      2. Step 2: Check what getOrNull() returns

        Since exception happened, getOrNull() returns null safely without crashing.
      3. Final Answer:

        No error, prints null because conversion fails -> Option A
      4. Quick Check:

        Exception caught means getOrNull() = null [OK]
      Hint: runCatching catches exceptions, getOrNull returns null on failure [OK]
      Common Mistakes:
      • Expecting exception to crash program
      • Thinking getOrNull returns original string
      • Assuming syntax error in code block
      5. You want to safely parse a list of strings to integers using runCatching and collect only the successful results. Which Kotlin code snippet correctly does this?
      hard
      A. val numbers = list.map { runCatching { it.toInt() }.exceptionOrNull() }
      B. val numbers = list.map { runCatching { it.toInt() }.getOrNull() }.filterNotNull()
      C. val numbers = list.map { it.toInt() }.filter { it != null }
      D. val numbers = list.map { runCatching { it.toInt() }.getOrThrow() }

      Solution

      1. Step 1: Understand the goal

        We want to convert strings to integers safely, ignoring failures, and collect only successful integers.
      2. Step 2: Analyze each option

        val numbers = list.map { runCatching { it.toInt() }.getOrNull() }.filterNotNull() uses runCatching to catch exceptions, then getOrNull() returns integer or null, and filterNotNull() removes nulls, collecting only successful parses.
      3. Final Answer:

        val numbers = list.map { runCatching { it.toInt() }.getOrNull() }.filterNotNull() -> Option B
      4. Quick Check:

        Safe parse + filter null = val numbers = list.map { runCatching { it.toInt() }.getOrNull() }.filterNotNull() [OK]
      Hint: Use getOrNull() then filterNotNull() to keep successful parses [OK]
      Common Mistakes:
      • Using getOrThrow() which throws on failure
      • Filtering nulls before catching exceptions
      • Using exceptionOrNull() which returns exceptions, not values
      Recommended

      Ready to prove it?

      Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

      10 questions~5 mineasy hard