Kotlin で例外を処理する

Kailash Vaviya 2023年1月30日
  1. コトリンの例外の概念
  2. Kotlin でチェックされていない例外を処理する
  3. Kotlin でカスタム例外を作成する
  4. Kotlin で@Throws 注釈を使用して例外を処理する
Kotlin で例外を処理する

例外処理は、ほとんどのプログラミング言語の基本的な概念です。コードが問題なく実行されるように、例外を処理するのに役立ちます。

Kotlin でさえ、@Throws アノテーションを使用した例外処理を許可しています。この記事では、@Throws アノテーションを使用して Kotlin の例外を処理する方法について説明します。

しかし、その前に、Kotlin の例外の基本的な概念を見てみましょう。

コトリンの例外の概念

Kotlin の例外は Java の例外に似ています。それらはすべて、Kotlin の Throwable クラスの子孫です。ただし、いくつかの違いもあります。

Java とは異なり、Kotlin にはチェックされた例外はありません。したがって、Kotlin にはチェックされていない例外または実行時の例外のみがあります。

また、Kotlin ではカスタム例外を作成できます。したがって、ランタイムエラーを防ぐために、独自の例外処理コードを作成できます。

Kotlin でチェックされていない例外を処理する

前述のように、チェックされていない例外は、実行時に発生する例外です。ArithmeticExceptionNullPointerExceptionNumberFormatException などを含むすべての Java のチェックされていない例外は、Kotlin のチェックされていない例外の例です。

try-catch ブロックと finally キーワードを使用して、Kotlin でチェックされていない例外を処理できます。

これは、チェックされていない例外を示すためのサンプルコードです。

fun main(args: Array<String>) {

    try {
        val i:Int = 12;
        val v:String = "Hello!";
        v.toInt();
   }
   catch(e:Exception) {
        e.printStackTrace();
   }

   finally {
        println("This is an example of unchecked exception handling using the try-catch block.");
   }

}

出力:

Kotlin でのチェックされていない例外の例

サンプルコードのデモを確認するには、ここをクリックをクリックしてください。

Kotlin でカスタム例外を作成する

throw キーワードを使用して、Kotlin でカスタム例外を作成することもできます。整数変数を宣言するコードを作成しましょう。

次に、その数が 18 以上であるかどうかを確認します。もしそうなら、"You are eligible to vote." というメッセージを表示し、そうでなければ、カスタムエラーメッセージを投げることになります。

fun main(args: Array<String>) {
    val v:Int;
    v = 16;
    if(v >= 18)
    {
        println("Welcome!! You are eligible to vote.")
    }

    else
    {
        //throwing custom exception using the throw keyword
        throw customExceptionExample("Sorry! You have to wait to cast a vote.")
    }
}

//custom exception class
class customExceptionExample(message: String) : Exception(message)

出力:

Kotlin のカスタム例外の例

サンプルコードのデモを確認するには、ここをクリックをクリックしてください。

Kotlin で@Throws 注釈を使用して例外を処理する

チェックされた例外はありませんが、Kotlin で処理できます。Kotlin @Throws 例外アノテーションを使用してこれを行うことができます。

@Throws アノテーションは、Java の相互運用性に役立ちます。したがって、Java に変換する必要のあるチェック済みの例外コードがある場合は、JVM マシンに@Throws アノテーションを使用できます。

これは、同じことを示すためのサンプルコードです。

import java.io.*
import kotlin.jvm.Throws

fun main(args: Array<String>) {
    val va=0
    var res=0
    try {
        res=va/0 // Since nothing is divisible by 0, it will throw an exception
    } catch (excep: Exception) {

        // While this is an Airthmetic exception,
        // we will throw a NullPointerException using the function call
        excep().throwJavaChecked()
    }
}
class excep{
    @Throws(NullPointerException::class)
    fun throwJavaChecked() {
        throw NullPointerException()
    }
}

出力:

Kotlin での例外処理に@Throws 注釈を使用する

サンプルコードのデモを確認するには、ここをクリックをクリックしてください。

著者: Kailash Vaviya
Kailash Vaviya avatar Kailash Vaviya avatar

Kailash Vaviya is a freelance writer who started writing in 2019 and has never stopped since then as he fell in love with it. He has a soft corner for technology and likes to read, learn, and write about it. His content is focused on providing information to help build a brand presence and gain engagement.

LinkedIn