Exceptions


Exceptions

Exceptions are a problem that happens during the execution of a program and interrupt the normal flow of execution. This can happen for various reasons, such as invalid arithmetic operations, referring to an empty object, etc.

Exception handling is a way of treating such problems and continuing the execution process.

In Kotlin, there are only unchecked exceptions thrown during the program runtime execution. The kotlin throw keyword is used to throw an exception object.

Throw Keyword

In Kotlin, the Throw keyword throws a particular exception or a custom exception.

Try-Catch Block

We can try to use the try-catch block with the exception of kotlin. In particular, the code thrown an exception is fetched by the try blocks. In addition, the corresponding catch block is used to handle the exception.
In fact, the try block is always followed by a catch block.

Try-Catch Block as an Expression

An expression combines one or more values such as variables, functions, and operators that provide another value after execution. Hence, the try-catch block can be used as an expression in Kotlin. The return value of the try-catch block is the last expression of either try or the catch block. In case of exception, the value of the catch block is returned so that the expression results are not affected by the finally block.

Multiple Catch Blocks

In kotlin, we can use multiple catch blocks with the try block. In particular, making different types of operations in a try block increases the risk of holding various exceptions. In addition, we must order the most specific exception of all catch blocks.

Nested Try-Catch Block

We can use a nested try-catch block where we can implement a try-catch block inside another try block. For example, when a code throws an exception and throws an exception within that code, another statement may throw an exception.

Finally Block

We can always use the finally block to execute the code whether an exception is managed or not. In addition, the finally block can be used with the try block by skipping the catch block.

It provides a value of the throw expression type. This is not only available for this specific type value but is also used to indicate the code block. Also, we cannot use types in a function to suggest that there is always an exception.

Throws Annotation

We can use @Throws annotation to provide interoperability with Java and Kotlin. Since Kotlin exceptions are not checked, it does not declare obstacles.