Bird
Raised Fist0
Kotlinprogramming~20 mins

Try-catch as an expression in Kotlin - Practice Problems & Coding Challenges

Choose your learning style10 modes available
Challenge - 5 Problems
🎖️
Try-Catch Expression Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
❓ Predict Output
intermediate
2:00remaining
Output of try-catch expression with successful try block
What is the output of this Kotlin code snippet?
Kotlin
val result = try {
    val x = 10 / 2
    "Success: $x"
} catch (e: ArithmeticException) {
    "Error"
}
println(result)
ASuccess: 5
BError
C10
DCompilation error
Attempts:
2 left
💡 Hint
Remember that try-catch in Kotlin can return a value from the try block if no exception occurs.
❓ Predict Output
intermediate
2:00remaining
Output when exception is thrown in try block
What will be printed by this Kotlin code?
Kotlin
val result = try {
    val x = 10 / 0
    "Success: $x"
} catch (e: ArithmeticException) {
    "Error caught"
}
println(result)
ASuccess: 0
BError caught
CArithmeticException thrown
DCompilation error
Attempts:
2 left
💡 Hint
Division by zero throws an exception, so the catch block runs.
❓ Predict Output
advanced
2:00remaining
Value of variable after try-catch expression with finally
What is the value of variable 'result' after running this Kotlin code?
Kotlin
val result = try {
    "Try block"
} catch (e: Exception) {
    "Catch block"
} finally {
    println("Finally block executed")
}
println(result)
ACompilation error
BCatch block
Cnull
DTry block
Attempts:
2 left
💡 Hint
Finally block runs but does not affect the returned value.
❓ Predict Output
advanced
2:00remaining
Output when catch block throws exception in try-catch expression
What happens when this Kotlin code runs?
Kotlin
val result = try {
    val x = 10 / 0
    "Success"
} catch (e: ArithmeticException) {
    throw IllegalStateException("New exception")
}
println(result)
AIllegalStateException is thrown
BSuccess
CCompilation error
DArithmeticException is caught and printed
Attempts:
2 left
💡 Hint
The catch block throws a new exception instead of returning a value.
🧠 Conceptual
expert
2:00remaining
Why is try-catch an expression in Kotlin?
Which statement best explains why try-catch is an expression in Kotlin?
ABecause it can only be used inside functions that return Unit.
BBecause it only handles exceptions without returning any value.
CBecause it can return a value from either the try or catch block, allowing assignment to variables.
DBecause it requires a finally block to compile successfully.
Attempts:
2 left
💡 Hint
Think about how try-catch can be used in assignments.

Practice

(1/5)
1. What does it mean that try-catch is an expression in Kotlin?
easy
A. It can only be used inside functions with no return type.
B. It only catches exceptions but cannot return values.
C. It must always be followed by a finally block.
D. It can return a value that can be assigned to a variable.

Solution

  1. Step 1: Understand try-catch as an expression

    In Kotlin, try-catch can produce a value, unlike in some languages where it is only a statement.
  2. Step 2: Recognize value assignment

    This means you can assign the result of a try-catch block directly to a variable.
  3. Final Answer:

    It can return a value that can be assigned to a variable. -> Option D
  4. Quick Check:

    Try-catch returns value = D [OK]
Hint: Try-catch can be assigned like any expression [OK]
Common Mistakes:
  • Thinking try-catch cannot return values
  • Confusing try-catch with only statements
  • Believing finally is always required
2. Which of the following is the correct syntax to assign a value using try-catch as an expression in Kotlin?
easy
A. val result = try { 10 / 0 } catch (e: Exception) { 0 }
B. val result try { 10 / 0 } catch (e: Exception) { 0 }
C. val result = try { 10 / 0 } finally { 0 }
D. val result = catch (e: Exception) { 0 } try { 10 / 0 }

Solution

  1. Step 1: Check assignment syntax

    The correct way to assign a value from try-catch is using val result = try { ... } catch { ... }.
  2. Step 2: Validate each option

    val result = try { 10 / 0 } catch (e: Exception) { 0 } uses correct syntax with try-catch returning a value. Options A, B, and D have syntax errors or misuse of finally/catch.
  3. Final Answer:

    val result = try { 10 / 0 } catch (e: Exception) { 0 } -> Option A
  4. Quick Check:

    Correct try-catch assignment syntax = C [OK]
Hint: Remember: val x = try { } catch { } [OK]
Common Mistakes:
  • Omitting '=' in assignment
  • Using finally block to return value
  • Placing catch before try
3. What will be the output of this Kotlin code?
val result = try {
    val num = 10 / 2
    "Success: $num"
} catch (e: Exception) {
    "Error"
}
println(result)
medium
A. Error
B. Success: 5
C. 10 / 2
D. Exception thrown

Solution

  1. Step 1: Evaluate try block

    The division 10 / 2 equals 5, so the try block returns the string "Success: 5".
  2. Step 2: Check for exceptions

    No exception occurs, so the catch block is skipped.
  3. Final Answer:

    Success: 5 -> Option B
  4. Quick Check:

    Try succeeds, output = Success: 5 [OK]
Hint: If no error, try block value is returned [OK]
Common Mistakes:
  • Assuming catch runs even without error
  • Printing the expression instead of result
  • Confusing integer division with string output
4. Identify the error in this Kotlin code using try-catch as an expression:
val result = try {
    val x = 10 / 0
    x
} catch {
    0
}
println(result)
medium
A. Cannot assign try-catch to a val
B. Division by zero is allowed without catch
C. Missing exception parameter in catch block
D. println cannot print variables from try-catch

Solution

  1. Step 1: Check catch block syntax

    The catch block must declare an exception parameter like catch (e: Exception).
  2. Step 2: Identify the error

    Here, catch is missing the exception parameter, causing a syntax error.
  3. Final Answer:

    Missing exception parameter in catch block -> Option C
  4. Quick Check:

    Catch needs exception parameter = B [OK]
Hint: Always include exception variable in catch (e: Exception) [OK]
Common Mistakes:
  • Omitting exception parameter in catch
  • Ignoring division by zero error
  • Thinking try-catch can't be assigned
5. Given this Kotlin function using try-catch as an expression, what will parseIntOrZero("abc") return?
fun parseIntOrZero(input: String): Int = try {
    input.toInt()
} catch (e: NumberFormatException) {
    0
}
hard
A. Returns 0
B. Throws NumberFormatException
C. Returns null
D. Returns input string

Solution

  1. Step 1: Analyze try block behavior

    Calling input.toInt() on "abc" throws NumberFormatException.
  2. Step 2: Catch block returns fallback

    The catch block catches this exception and returns 0 as fallback.
  3. Final Answer:

    Returns 0 -> Option A
  4. Quick Check:

    Exception caught, fallback 0 returned = A [OK]
Hint: Catch returns fallback value on error [OK]
Common Mistakes:
  • Expecting exception to propagate
  • Thinking null is returned on error
  • Confusing return type with input type
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