throws Exception in a method with Kotlin
In Java your functions are something like this
void foo() throws IOException{
throw new IOException();
}
But in Kotlin you can add annotation like below to force other Java classes to catch it. However, as other answers have pointed out, it doesn't have any meaning among Kotlin classes.
@Throws(IOException::class)
fun foo() {
throw IOException()
}
Source kotlinlang.org
In Kotlin, there's no checked exceptions, no exceptions have to be declared and you aren't forced to catch any exception, though, of course, you can. Even when deriving from a Java class, you don't have to declare exceptions that a method throws
.
@Throws(SomeException::class)
is just intended for Java interoperability, which allows one to write a function with throws
in Java signature, so that in Java it will be possible (and necessary) to handle the exception.
Instead, public API exceptions should be documented in KDoc with @throws
tag.