カテゴリ: Kotlin 更新日: 2025/11/12

Kotlinのthrow文の使い方!例外を発生させる基本と応用を初心者向けに解説

Kotlinのthrow文の使い方!例外を発生させる基本と応用
Kotlinのthrow文の使い方!例外を発生させる基本と応用

先生と生徒の会話形式で理解しよう

生徒

「Kotlinで自分でエラーを出すような処理ってできますか?例えば、入力が変だったときに止めるとか。」

先生

「できますよ。そのときに使うのがthrowというキーワードです。エラーを自分で投げて、処理を止めたり、別の動きをさせたりできるんです。」

生徒

「自分でエラーを出せるんですね!それってどうやって使うんですか?」

先生

「では、Kotlinのthrow文の使い方を、わかりやすく説明していきますね!」

1. throw文とは?

1. throw文とは?
1. throw文とは?

Kotlinのthrow文は、意図的に例外(エラー)を発生させるためのキーワードです。「このまま処理を続けると危険!」というときに使います。

たとえば、ユーザーが不正な値を入力した場合や、条件が正しくないときに、明確に止めることができます。

2. throwの基本的な使い方

2. throwの基本的な使い方
2. throwの基本的な使い方

throwの基本の使い方は、次のようにException(例外オブジェクト)と一緒に使います。


fun checkAge(age: Int) {
    if (age < 0) {
        throw IllegalArgumentException("年齢は0以上を指定してください")
    }
    println("年齢:$age")
}

この関数は、年齢が0未満(マイナス)のときにエラーを発生させます。

IllegalArgumentExceptionは「引数が正しくない」という意味の例外です。

3. throwを使った関数を呼び出す

3. throwを使った関数を呼び出す
3. throwを使った関数を呼び出す

実際にこの関数を使ってみましょう。エラーが起きると、処理はそこで止まります。


fun main() {
    checkAge(25)  // 正常
    checkAge(-5)  // エラー発生
}

年齢:25
Exception in thread "main" java.lang.IllegalArgumentException: 年齢は0以上を指定してください

このように、throwで発生させたエラーは、メッセージとともに表示されます。

4. throwとtry-catchの組み合わせ

4. throwとtry-catchの組み合わせ
4. throwとtry-catchの組み合わせ

throwで例外を出すとき、それをtry-catchで受け取ることもできます。これでプログラムを止めずに安全に処理できます。


fun main() {
    try {
        checkAge(-1)
    } catch (e: IllegalArgumentException) {
        println("エラーが発生しました:${e.message}")
    }
}

エラーが発生しました:年齢は0以上を指定してください

throwで投げた例外をcatchで受け取り、e.messageでエラーメッセージを表示できます。

5. throwで使える例外クラス

5. throwで使える例外クラス
5. throwで使える例外クラス

Kotlinでは、さまざまな種類の例外(エラー)クラスを使ってthrowできます。代表的なものは以下のとおりです:

  • IllegalArgumentException:引数が不正なとき
  • IllegalStateException:現在の状態が正しくないとき
  • NumberFormatException:文字列を数値に変換できないとき
  • Exception:一般的な例外(汎用)

例えば、状態がおかしい場合には以下のように書きます。


val isReady = false
if (!isReady) {
    throw IllegalStateException("準備ができていません")
}

6. カスタム例外クラスを作ることもできる

6. カスタム例外クラスを作ることもできる
6. カスタム例外クラスを作ることもできる

少し発展的ですが、自分でオリジナルの例外クラスを作ることもできます。

これは後でエラーの種類を細かく分けたいときに便利です。


class MyCustomException(message: String) : Exception(message)

fun test(value: Int) {
    if (value == 0) {
        throw MyCustomException("ゼロは使えません")
    }
}

このように、自作の例外クラスをthrowすることで、より柔軟なエラー処理ができます。

まとめ

まとめ
まとめ

Kotlinのthrow文を使うことで、自分自身でエラー(例外)を発生させて処理の流れをコントロールできるようになります。特に、ユーザーの入力値を検証する場面や、アプリの状態が不正なときに明確に処理を止めたい場合などにとても有効です。IllegalArgumentExceptionIllegalStateExceptionなど、用途に応じた例外クラスを使い分けることで、エラー内容がより明確になり、後からコードを読むときの理解も深まります。

また、throwtry-catchを組み合わせることで、プログラム全体の信頼性を高めることができます。予想外の入力や想定外の動きに備えて、安全に処理を続けるための仕組みが作れるのです。これは、アプリケーションの信頼性やユーザー体験に直結する非常に重要な考え方です。

さらに、Kotlinではカスタム例外(自作の例外クラス)も定義できるため、アプリケーションに特化したエラーメッセージや挙動を設計することも可能になります。複雑なシステムになってくると、例外を分類・整理して扱うことが重要になってくるので、今のうちから慣れておくと将来的にとても役立ちます。

以下は、すべてを組み合わせた応用的なサンプルコードです。初心者の方も、自分でthrowtry-catchを実際に使ってみることで、Kotlinの例外処理に対する理解をより深めることができるでしょう。


class InputTooShortException(message: String) : Exception(message)

fun checkInput(input: String) {
    if (input.isBlank()) {
        throw IllegalArgumentException("入力が空です")
    }
    if (input.length < 3) {
        throw InputTooShortException("入力は3文字以上にしてください")
    }
    println("入力された文字列:$input")
}

fun main() {
    val userInput = "あ"

    try {
        checkInput(userInput)
    } catch (e: IllegalArgumentException) {
        println("入力エラー:${e.message}")
    } catch (e: InputTooShortException) {
        println("カスタムエラー:${e.message}")
    }
}

カスタムエラー:入力は3文字以上にしてください

上記のコードでは、「入力が空かどうか」と「文字数が短すぎないか」をチェックし、それぞれに異なる例外を使って適切にエラーを出しています。これにより、どのような問題が起きたのかをユーザーに具体的に伝えやすくなります。エラー処理は難しく感じられるかもしれませんが、少しずつ慣れていけば、Kotlinの開発において非常に心強いスキルになります。

先生と生徒の振り返り会話

生徒

「Kotlinで自分でエラーを出すのって、ちょっとこわそうでしたけど、思ったより簡単でした!」

先生

「そうですね。throw文は、正しく使えばプログラムを安全に動かすための大切な道具なんですよ。」

生徒

「しかも、try-catchでちゃんと受け取ってあげれば止まらずに続けられるんですね。入力チェックにすごく使えそうです。」

先生

「その通りです。ユーザーの入力値をきちんと検証して、適切なエラーメッセージを返せば、アプリの信頼性が上がりますよ。」

生徒

「カスタム例外も使えるってことは、アプリに合わせたエラー設計もできるんですね!プロっぽい!」

先生

「その感覚、大切にしてください。Kotlinの例外処理はとても強力なので、今のうちから少しずつ練習していきましょう。」

カテゴリの一覧へ
新着記事
Go言語の関数でエラーハンドリングする基本的な方法
Go言語のスライス・マップ・配列をまとめて比較してみよう!初心者でもわかる使い分けの基本
Go言語の条件分岐の見やすい書き方を徹底解説!初心者でもわかるif文の使い方
Go言語とは何か?初心者向けに特徴・できること・インストール手順までやさしく解説
人気記事
No.1
Java&Spring記事人気No1
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.2
Java&Spring記事人気No2
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.3
Java&Spring記事人気No3
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.4
Java&Spring記事人気No4
Kotlinのデータクラス(data class)とは?便利な特徴と使い方を初心者向けにやさしく解説!