カテゴリ: Kotlin 更新日: 2026/02/08

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

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

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

生徒

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

先生

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

生徒

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

先生

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

1. throw文とは?

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

Kotlinのthrow文は、自分でエラー(例外)を発生させるための書き方です。プログラムを続けると危ないと判断したときや、間違った入力を見つけたときに、「ここで処理を止めて!」と指示できます。

たとえば、年齢の入力にマイナスが来たらそのまま続けるのはおかしいですよね。そんなときにthrowを使うことで、間違いを早い段階で発見でき、原因もはっきりさせられます。

イメージしやすいように、簡単な例を見てみましょう。


fun checkName(name: String) {
    if (name.isEmpty()) {
        throw Exception("名前が入力されていません")
    }
    println("入力された名前:$name")
}

この関数は、名前が空だった場合にthrowで強制的に止めています。プログラムが間違ったデータをそのまま処理しないようにできる、という仕組みですね。初心者でも覚えやすい、Kotlinの大事なポイントです。

2. throwの基本的な使い方

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

throwは、「この条件なら続行できない」と判断した瞬間に例外オブジェクトを投げて処理を中断するためのキーワードです。書き方の基本は、throw 例外クラス("原因がわかる短いメッセージ")という形になります。入力チェックやバリデーションでよく使われ、Kotlinの例外処理の入門ポイントです。

まずは、年齢の入力値を検証するシンプルな例です。ガード節(先に不正を弾く書き方)を使うと読みやすくなります。


fun checkAge(age: Int) {
    if (age < 0) {
        // 不正な値を見つけたら、理由を添えて直ちに中断
        throw IllegalArgumentException("年齢は0以上を指定してください:入力=$age")
    }
    println("年齢:$age") // ここに来るのは正しい値だけ
}

IllegalArgumentExceptionは「関数に渡された引数が不正」のときに使う代表的な例外です。メッセージには「何がダメで、何を期待するのか」を短く書くと、後で原因を追いやすくなります。

もうひとつ、文字列の入力チェックの例です。空文字やスペースだけの名前は受け付けない、というルールを明確にできます。


fun requireName(name: String) {
    if (name.isBlank()) {
        throw IllegalArgumentException("名前は空白以外の文字を入力してください")
    }
    println("入力された名前:$name")
}

ポイントは次の3つです。①早めに判定して早めに失敗する(Fail Fast)。②適切な例外クラスを選ぶ(引数の誤りならIllegalArgumentException)。③短く具体的なメッセージで原因をはっきり伝える。これだけで、初心者でも読みやすく保守しやすいKotlinコードに近づきます。

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の例外処理はとても強力なので、今のうちから少しずつ練習していきましょう。」

Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。

基礎からわかるKotlinをAmazonで見る

※ Amazon広告リンク

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Kotlinのthrow文って何のために使うの?初心者でも理解できる使い方が知りたいです。

Kotlinのthrow文は、プログラムの中で意図的にエラー(例外)を発生させたいときに使います。例えば不正な入力があった場合など、「この先は処理を止めたい」と判断したときに使います。
関連セミナーのご案内

【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分

「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。

本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。

具体的な体験内容と環境

【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。

【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。

この60分で得られる3つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のwhile的なforループの使い方!条件式ループの基本を解説
New2
Go言語
Go言語プログラムの実行方法まとめ!VSCode・ターミナルでの実行手順を解説
New3
Swift
Swift意味とは?プログラミング言語・金融・鳥の違いを徹底解説
New4
Swift
Swift 戻り値の扱い方と複数戻り値の返し方|初心者でも分かる関数の基本
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.4
Java&Spring記事人気No4
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo.modファイル完全ガイド!初心者でもわかる仕組みと書き方
No.6
Java&Spring記事人気No6
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.7
Java&Spring記事人気No7
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.8
Java&Spring記事人気No8
Kotlin
Kotlinのログ出力方法を完全ガイド!LogcatとTimberでトラブルシューティング