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

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クラスとは?

Exceptionクラスは、チェック例外(checked exception)と呼ばれることがあります。Kotlin自体にはJavaのような強制チェックはありませんが、意図的に例外を扱う必要がある場合に使います。


fun readFile(fileName: String) {
    if (fileName.isEmpty()) {
        throw Exception("ファイル名が空です")
    }
    println("ファイルを読み込みます: $fileName")
}

fun main() {
    try {
        readFile("")
    } catch (e: Exception) {
        println("エラー: ${e.message}")
    }
}

エラー: ファイル名が空です

このように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言語のレイヤードアーキテクチャの仕組みと実装例!初心者でもわかる階層設計ガイド
New2
Kotlin
Kotlinのwhen式の使い方!Javaのswitchに相当する書き方を解説
New3
Go言語
Go言語の条件分岐やループの設計パターン集!初心者向けまとめ
New4
Go言語
Go言語のdefer・panic・recoverを使って安全なコードを書こう!初心者にもわかりやすく解説
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Kotlinのsettings.gradleファイルを完全解説!初心者でもわかるプロジェクト設定の基本
No.2
Java&Spring記事人気No2
Kotlin
KotlinのRoomで複雑なクエリを使いこなす!初心者でもわかる応用テクニック
No.3
Java&Spring記事人気No3
Swift
SwiftでAttributedStringとNSAttributedStringを使ったリッチテキスト表示の基本
No.4
Java&Spring記事人気No4
Go言語
Swiftの配列(Array)の使い方を完全ガイド!初心者でもわかるデータのまとめ方
No.5
Java&Spring記事人気No5
Go言語
Go言語のgo installコマンドの役割とインストール先の仕組みを徹底解説!
No.6
Java&Spring記事人気No6
Go言語
Swiftの文字列操作を完全ガイド!初心者でもわかるStringの基本
No.7
Java&Spring記事人気No7
Go言語
Go言語のSQLインジェクション対策を完全解説!初心者でも安全なデータベース操作がわかる
No.8
Java&Spring記事人気No8
Go言語
Go言語のインストール方法まとめ!Windows・Mac・Linux別に手順を丁寧に解説