カテゴリ: Kotlin 更新日: 2026/03/09

Kotlinの例外クラスの基本!ExceptionとRuntimeExceptionの違い

Kotlinの例外クラスの基本!ExceptionとRuntimeExceptionの違い
Kotlinの例外クラスの基本!ExceptionとRuntimeExceptionの違い

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

生徒

「KotlinでExceptionとかRuntimeExceptionって見かけるんですけど、どう違うんですか?」

先生

「それは例外処理のクラスの種類ですね。エラーの性質や発生タイミングによって使い分けられます。」

生徒

「具体的にどんな場面で違いが出るんですか?」

先生

「では、KotlinにおけるExceptionRuntimeExceptionの基本を例付きで解説していきましょう。」

1. Kotlinにおける例外クラスとは?エラー処理の全体像

1. Kotlinにおける例外クラスとは?エラー処理の全体像
1. Kotlinにおける例外クラスとは?エラー処理の全体像

プログラミングをしていると、入力ミスやネットワークの切断など、予期せぬトラブル(エラー)がどうしても発生します。Kotlinでは、これらの問題を「例外(Exception)」という仕組みを使って管理します。

Kotlinのすべての例外は、Throwableという大元のクラスを継承しています。この下には、主に2つの重要なクラスがあります。

  • Error(エラー): メモリ不足など、プログラム側ではどうしようもない致命的な問題。
  • Exception(例外): プログラムの書き方や処理の工夫で、適切に対処・回復ができる問題。

今回詳しく学ぶのは、後者の「Exception」です。まずは、最もシンプルな例外が発生するイメージを、プログラミングが初めての方でも分かりやすいコードで見てみましょう。


fun main() {
    // 例えば、数字ではない文字を無理やり数字に変換しようとすると...
    val text = "こんにちは"
    
    // ここで「そんなの無理だよ!」という例外が発生します
    val number = text.toInt() 
    
    println("この行は実行されません: $number")
}

このコードを実行すると、プログラムは途中で止まり「NumberFormatException」という例外が表示されます。このように、例外クラスは「何が原因で処理が止まったのか」を名前で教えてくれる役割を持っています。

その中でも、開発者が特によく扱うのが、基本的なExceptionクラスと、その一種であるRuntimeExceptionです。これらがどのように使い分けられるのか、次の章から詳しく解説していきます。

2. Exceptionクラスとは?(例外処理の基本)

2. Exceptionクラスとは?(例外処理の基本)
2. Exceptionクラスとは?(例外処理の基本)

プログラミングをしていると、ファイルが見つからない、ネットワークが途切れるといった「予期せぬトラブル」が発生することがあります。KotlinのExceptionクラスは、こうしたエラーをキャッチし、プログラムが強制終了するのを防ぐために使われます。

本来、Javaなどでは「チェック例外」として厳密に区別されますが、Kotlinではより柔軟に扱えるのが特徴です。まずは「何か問題が起きた時に投げるバトン」のようなものだと考えてみましょう。未経験の方でも分かりやすいよう、条件に合わない場合にエラーを発生させるシンプルな例を紹介します。


// ユーザーの年齢をチェックする関数
fun checkAge(age: Int) {
    if (age < 0) {
        // Exception(例外)を発生させて、後続の処理をストップさせる
        throw Exception("年齢にマイナスの値は入力できません")
    }
    println("登録を受け付けました:$age 歳")
}

fun main() {
    try {
        // 0未満の値を渡して、わざとエラーを発生させてみる
        checkAge(-5)
    } catch (e: Exception) {
        // エラーが発生した場合、ここが実行される
        println("【システム通知】${e.message}")
    } finally {
        println("処理が完了しました")
    }
}

【システム通知】年齢にマイナスの値は入力できません
処理が完了しました

このコードでは、年齢がマイナスという「本来ありえない状況」に対し、Exceptionを使って安全にエラーを通知しています。try-catch構文と組み合わせることで、アプリが突然落ちるのを防ぎ、ユーザーに適切なメッセージを表示できるようになります。このように、事前に予測できるエラーを管理するのがExceptionの役割です。

3. RuntimeExceptionクラスとは?

3. RuntimeExceptionクラスとは?
3. RuntimeExceptionクラスとは?

RuntimeExceptionは実行時例外(unchecked exception)を表します。これはプログラム実行中に予期せず発生するエラーで、事前に防ぎにくいことが多いです。


fun divide(a: Int, b: Int): Int {
    if (b == 0) {
        throw RuntimeException("0で割ることはできません")
    }
    return a / b
}

fun main() {
    val result = try {
        divide(10, 0)
    } catch (e: RuntimeException) {
        println("実行時エラー: ${e.message}")
        -1
    }
    println("計算結果: $result")
}

実行時エラー: 0で割ることはできません
計算結果: -1

4. ExceptionとRuntimeExceptionの使い分け

4. ExceptionとRuntimeExceptionの使い分け
4. ExceptionとRuntimeExceptionの使い分け
  • Exception:事前に想定できるエラー(入力チェック、ファイル存在確認など)
  • RuntimeException:実行中に発生する予期しないエラー(計算ミス、nullアクセスなど)

KotlinではJavaのように「必ずcatchしなければならない」制約はありませんが、エラーの性質に応じて使い分けることが重要です。

5. 独自の例外クラスを作る

5. 独自の例外クラスを作る
5. 独自の例外クラスを作る

Kotlinでは独自の例外クラスを作成することもできます。用途に応じた名前を付けることで、エラー原因の特定がしやすくなります。


class InvalidUserInputException(message: String) : Exception(message)

fun main() {
    try {
        throw InvalidUserInputException("入力が不正です")
    } catch (e: InvalidUserInputException) {
        println("カスタムエラー: ${e.message}")
    }
}

カスタムエラー: 入力が不正です

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

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

※ Amazon広告リンク

6. 初心者が覚えておきたいポイント

6. 初心者が覚えておきたいポイント
6. 初心者が覚えておきたいポイント
  • すべての例外はThrowableを継承している
  • Exceptionは予測できるエラー、RuntimeExceptionは予測しにくいエラー
  • Kotlinではcatchは必須ではないが、適切に処理を書くことで安全性が向上
  • カスタム例外を作ると可読性と保守性が向上
関連セミナーのご案内

【未経験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の演算子一覧と使い方!算術・比較・論理演算子の基本を解説