DEV Community

loading...

Kotlin Exception handling

tedhagos profile image Ted Hagos Originally published at workingdev.net on ・1 min read

Kotlin's approach to exception is similar to Java. Somewhat. It uses the try-catch-finally, just like in Java. So, your knowledge about how try-catch works commutes nicely to Kotlin. The code below should be very familiar. It shows a typical code on how to open a file

import java.io.FileNotFoundException
import java.io.FileReader
import java.io.IOException

fun main(args: Array<String>) {
  var fileReader: FileReader
    try {
    fileReader = FileReader("README.txt")
    var content = fileReader.read()
    println(content)
 }
  catch (ffe: FileNotFoundException) {
    println(ffe.message)
  }
  catch(ioe: IOException) {
    println(ioe.message)
 }
}

So, what's different? Well, in Kotlin, everything is an unchecked exception. Which means, the try-catch block is optional. It's up to the programmer if you want to use it. So, the code above, can be written like this (in Kotlin).

import java.io.FileReader  

fun main(args: Array<String>) {
  var fileReader = FileReader("README.txt")  
  var content = fileReader.read()  
  println(content)
}

So how do you know if you need to use try-catch. You might not like the answers now, but in the long run, these are good advice to follow ;

  1. You have to know the API's you're using. I know that this is not great news for beginners, but look at it this way, you won't be a beginner for long. And you really should know the API's you're using. TL;DR won't serve you well in this area
  2. You have to get into the habit of unit-testing your code. This is a good habit to develop anyway

Discussion

pic
Editor guide