📖 Scenario: Imagine you are writing a small Kotlin program that tries to convert user input into a number. Sometimes the input might not be a valid number, so you want to handle that error smoothly.
🎯 Goal: You will build a Kotlin program that uses try-catch as an expression to safely convert a string to an integer. If the conversion fails, it will return a default value.
📋 What You'll Learn
Create a variable with a string that might not be a number
Create a default integer value for fallback
Use try-catch as an expression to convert the string to an integer or use the default
Print the final integer value
💡 Why This Matters
🌍 Real World
Handling user input or data from files where the format might be incorrect is common. Using try-catch as an expression helps keep code clean and safe.
💼 Career
Many Kotlin jobs require safe error handling and working with user input or external data. This skill is essential for writing robust applications.
Progress0 / 4 steps
1
Create the input string
Create a variable called input and set it to the string "abc123".
Kotlin
Hint
Use val input = "abc123" to create the string variable.
2
Create the default fallback value
Create a variable called defaultValue and set it to the integer 0.
Kotlin
Hint
Use val defaultValue = 0 to create the fallback integer.
3
Use try-catch as an expression to convert input
Create a variable called number and set it to the result of a try-catch expression that tries to convert input to an integer using input.toInt(). If an exception occurs, return defaultValue.
Kotlin
Hint
Use val number = try { input.toInt() } catch (e: Exception) { defaultValue } to handle conversion safely.
4
Print the result
Write a println statement to display the value of number.
Kotlin
Hint
Use println(number) to show the final integer.
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
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.
Step 2: Recognize value assignment
This means you can assign the result of a try-catch block directly to a variable.
Final Answer:
It can return a value that can be assigned to a variable. -> Option D
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
Step 1: Check assignment syntax
The correct way to assign a value from try-catch is using val result = try { ... } catch { ... }.
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.
Final Answer:
val result = try { 10 / 0 } catch (e: Exception) { 0 } -> Option A
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
Step 1: Evaluate try block
The division 10 / 2 equals 5, so the try block returns the string "Success: 5".
Step 2: Check for exceptions
No exception occurs, so the catch block is skipped.
Final Answer:
Success: 5 -> Option B
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
Step 1: Check catch block syntax
The catch block must declare an exception parameter like catch (e: Exception).
Step 2: Identify the error
Here, catch is missing the exception parameter, causing a syntax error.
Final Answer:
Missing exception parameter in catch block -> Option C
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
Step 1: Analyze try block behavior
Calling input.toInt() on "abc" throws NumberFormatException.
Step 2: Catch block returns fallback
The catch block catches this exception and returns 0 as fallback.
Final Answer:
Returns 0 -> Option A
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 unknownstrongwhile earning +1 Grip toward your certificate.