Exception Handling in Kotlin with Examples - GeeksforGeeks

16 Aug, 2020
Exceptions are the error which comes at the runtime and disrupts your flow of execution of the program. Basically exception is the unwanted event that occurs at runtime. The method by which we can handle this kind of error is called Exception Handling.
Checked Exception: Exceptions that occur at the compile-time, or we can say that checked at the compile time is called Checked Exception. Example — IOException, Some file related Exception, etcUnchecked Exception: Exceptions that occur at the runtime is called Unchecked Exception. Example — OutofBound exception.
Checked Exception: Exceptions that occur at the compile-time, or we can say that checked at the compile time is called Checked Exception. Example — IOException, Some file related Exception, etc
Unchecked Exception: Exceptions that occur at the runtime is called Unchecked Exception. Example — OutofBound exception.
Note: In Kotlin we have only unchecked Exceptions which only figure out at the runtime.
We have some keywords which help us to handle Exceptions.
Try            // This will try to find the exceptionThrow      // If exception found then it will throw the exceptionCatch       // After throwing it will catch the exception and execute their body.
Try            // This will try to find the exception
Throw      // If exception found then it will throw the exception
Catch       // After throwing it will catch the exception and execute their body.
We have one more keyword called Finally, It will always execute either we got exception or not. In this, we have some important codes that always need to execute.
Note: If the program exit by exitProcess(Int) or abort(), then the finally will not be executed.
try{  // your code which  // may throw an exception}catch(ex : ExceptionName){  // Exception handle code}finally{  // this will execute every time  // either we found exception or not}
Example 1: Divide By Zero 
Kotlin
fun main(){    try      {      // calling the function      divide(10, 0)     }    catch (ex : Exception)    {      // or you can also write your      // own handle here      println(ex.message)     }}  // function which may give exceptionfun divide(a : Int, b : Int){    if (b == 0)        throw Exception("Divide by zero")     // even if you didn't write    // this throw it will work fine.    println("Division is :" + a / b)}
Output:
Divide by zero

Example 2: Let’s try the same code with try-catch and finally.
Kotlin
fun main(){    // first try block    try     {      // didn't throw any exception      divide(20, 10)     }    catch (ex : Exception)    {      // or you can also write your      // own handle here      println(ex.message)     }    finally     {      println("I'm executed")    }          // 2nd try block    try     {      // throw an exception      divide(10, 0)     }    catch (ex : Exception)    {      // or you can also write your      // own handle here      println(ex.message)     }    finally     {      println("I'm executed")    }}  fun divide(a : Int, b : Int){    if (b == 0)        throw Exception("Divide by zero")     println("Division is :" + a / b)}
Output:
Division is : 2
I'm executed
Divide by zero
I'm executed

Note that In the above example, finally is executed in both cases either exception occurs or not.
Kotlin Exception-Handling
Picked
Kotlin
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Retrofit with Kotlin Coroutine in Android
How to Get Current Location in Android?
How to Build a Weather App in Android?
ImageView in Android with Example
Kotlin extension function
ScrollView in Android
How to Send Data From Activity to Fragment in Android?
Notifications in Android with Example
Kotlin Coroutines on Android
Suspend Function In Kotlin Coroutines