Kotlin Exception Handling
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 ;
- 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
- You have to get into the habit of unit-testing your code. This is a good habit to develop anyway
If you find any corrections in the page or article, the best place to log that is in the site's GitHub repo workingdev.net/issues. To start a discussion with me, the best place to do that is via twitter @lovescaffeine