A custom exception class is a user-defined class that extends the Exception class (or its subclasses) to represent specific error conditions in your program.
Click to reveal answer
beginner
How do you define a simple custom exception class in Kotlin?
You define it by creating a class that inherits from Exception, for example:<br><pre>class MyException(message: String) : Exception(message)</pre>
Click to reveal answer
intermediate
Why create custom exception classes instead of using built-in exceptions?
Custom exceptions help you clearly identify and handle specific error cases in your program, making your code easier to understand and maintain.
Click to reveal answer
beginner
How do you throw a custom exception in Kotlin?
Use the throw keyword followed by an instance of your custom exception, for example:
throw MyException("Something went wrong")
Click to reveal answer
intermediate
Can custom exceptions have additional properties or functions?
Yes, custom exception classes can have extra properties or functions to provide more details about the error or to help with error handling.
Click to reveal answer
Which Kotlin class should you extend to create a custom exception?
AException
BString
CInt
DList
✗ Incorrect
Custom exceptions extend the Exception class or its subclasses to represent errors.
How do you throw a custom exception named MyException with a message?
Athrow Exception("Error message")
Bthrow MyException("Error message")
Cthrow new MyException
Draise MyException("Error message")
✗ Incorrect
In Kotlin, use throw followed by an instance of your custom exception with a message.
What is the benefit of using custom exceptions?
AThey automatically fix errors
BThey run faster than built-in exceptions
CThey prevent all errors
DThey make error handling clearer and more specific
✗ Incorrect
Custom exceptions help identify specific errors clearly, improving code readability and maintenance.
Which keyword is used to define a custom exception class in Kotlin?
Aclass
Bfun
Cobject
Dinterface
✗ Incorrect
Custom exceptions are defined using the class keyword, extending Exception.
Can a custom exception class have extra properties?
ANo, exceptions cannot have properties
BOnly if it extends RuntimeException
CYes, to provide more error details
DOnly if it is an interface
✗ Incorrect
Custom exceptions can have additional properties or functions to give more context about the error.
Explain how to create and use a custom exception class in Kotlin.
Think about class inheritance and how exceptions are thrown.
You got /4 concepts.
Why might you want to create a custom exception instead of using built-in exceptions?
Consider how custom exceptions help in understanding and managing errors.
You got /4 concepts.
Practice
(1/5)
1. What is the main purpose of creating a custom exception class in Kotlin?
easy
A. To speed up program execution
B. To define a specific type of error with a clear name
C. To automatically fix errors in code
D. To replace all built-in exceptions
Solution
Step 1: Understand what exceptions represent
Exceptions represent errors or unexpected events in a program.
Step 2: Purpose of custom exceptions
Custom exceptions let you name specific error types clearly, making code easier to read and debug.
Final Answer:
To define a specific type of error with a clear name -> Option B
Quick Check:
Custom exceptions = clear error types [OK]
Hint: Custom exceptions give clear names to specific errors [OK]
2. Which of the following is the correct way to declare a custom exception class named MyError in Kotlin?
easy
A. exception MyError extends Exception
B. fun MyError() : Exception
C. class MyError inherits Exception
D. class MyError : Exception()
Solution
Step 1: Recall Kotlin class declaration syntax
In Kotlin, classes are declared with class ClassName.
Step 2: Inherit from Exception class
Use colon : to inherit, so class MyError : Exception() is correct.
Final Answer:
class MyError : Exception() -> Option D
Quick Check:
Custom exception syntax = class Name : Exception() [OK]
Hint: Use colon : to inherit Exception in class declaration [OK]
Common Mistakes:
Using 'fun' instead of 'class' to declare exception
Using 'extends' or 'inherits' which are not Kotlin keywords
Missing parentheses after Exception
3. What will be the output of this Kotlin code?
class MyException : Exception("Custom error")
fun test() {
throw MyException()
}
fun main() {
try {
test()
} catch (e: MyException) {
println(e.message)
}
}
medium
A. Custom error
B. MyException
C. null
D. No output, program crashes
Solution
Step 1: Understand the custom exception message
The class passes "Custom error" to Exception constructor, so e.message is "Custom error".
Step 2: Catch block prints the exception message
The catch block catches MyException and prints e.message, which is "Custom error".
Final Answer:
Custom error -> Option A
Quick Check:
Exception message printed = Custom error [OK]
Hint: Exception message prints from e.message in catch block [OK]
Common Mistakes:
Expecting class name instead of message
Thinking program crashes without output
Assuming message is null if not set explicitly
4. Identify the error in this Kotlin custom exception class:
class MyException extends Exception() {}
medium
A. Class body cannot be empty
B. Missing parentheses after class name
C. Using 'extends' instead of ':' for inheritance
D. Exception class cannot be inherited
Solution
Step 1: Check Kotlin inheritance syntax
Kotlin uses colon ':' for inheritance, not 'extends'.
Step 2: Identify the incorrect keyword
The code uses 'extends' which is from Java, causing syntax error.
Final Answer:
Using 'extends' instead of ':' for inheritance -> Option C
Quick Check:
Kotlin inheritance uses ':' not 'extends' [OK]
Hint: Use ':' not 'extends' for inheritance in Kotlin [OK]
Common Mistakes:
Confusing Java syntax with Kotlin
Thinking empty class body is invalid
Believing Exception cannot be subclassed
5. You want to create a custom exception InvalidAgeException that takes an age value as a property and shows a message like "Invalid age: 15". Which Kotlin code correctly implements this?
hard
A. class InvalidAgeException(val age: Int) : Exception("Invalid age: $age")
B. class InvalidAgeException(age: Int) : Exception("Invalid age: ${age}")
C. class InvalidAgeException(age: Int) : Exception("Invalid age: $age")
D. class InvalidAgeException(age: Int) : Exception("Invalid age: " + age)
Solution
Step 1: Understand primary constructor properties and string interpolation
In Kotlin, val param: Type creates a read-only property accessible as e.age.
Step 2: Constructor param available in super call
Params (with or without val) are in scope for superclass constructor, use $age for interpolation (braces optional for simple identifiers).
Step 3: Evaluate options
A correctly uses val age: Int for property + $age interpolation. B/C/D lack val, so no age property (only private param). D uses concatenation (valid but less idiomatic).
Final Answer:
class InvalidAgeException(val age: Int) : Exception("Invalid age: $age") -> Option A
Quick Check:
val age: Int + $age interpolation for property + message [OK]
Hint: Use val age: Int and $age for property + message interpolation [OK]
Common Mistakes:
Omitting 'val' (no public age property)
Using unnecessary braces ${age} (optional for simple vars)
Using string concatenation instead of interpolation
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.