カテゴリ: Kotlin 更新日: 2025/09/13

Kotlinの複数catchの使い方を初心者向けにやさしく解説!例外の種類ごとに分けて処理する方法

Kotlinの例外処理で複数のcatchを使い分ける方法
Kotlinの例外処理で複数のcatchを使い分ける方法

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

生徒

「Kotlinのtry-catchって、エラーが起きたときに使うんですよね?」

先生

「その通りです。ただし、catchは1つだけじゃなくて、エラーの種類ごとに分けて複数使うこともできますよ。」

生徒

「えっ!?エラーの種類ってどういう意味なんですか?」

先生

「わかりやすく説明していくので、一緒に学んでいきましょう!」

1. Kotlinの例外処理とは?

1. Kotlinの例外処理とは?
1. Kotlinの例外処理とは?

Kotlin(コトリン)でプログラムを書いていると、思わぬエラーが起こることがあります。たとえば、「数字じゃない文字」を数値に変換しようとするとエラーになります。

このようなエラー(例外:Exception(エクセプション))を処理するために、Kotlinではtry-catchという仕組みがあります。

2. 例外(Exception)の種類って?

2. 例外(Exception)の種類って?
2. 例外(Exception)の種類って?

エラーには種類があります。たとえば:

  • NumberFormatException:数字に変換できないとき
  • ArithmeticException:割り算で0を使ったとき

それぞれに違うcatchを書いておくと、適切な対処ができるようになります。

3. Kotlinで複数のcatchを使う基本構文

3. Kotlinで複数のcatchを使う基本構文
3. Kotlinで複数のcatchを使う基本構文

それでは、Kotlinでtry-catchを複数使う基本的な例を見てみましょう。


fun main() {
    val input = "abc"
    val result = try {
        val number = input.toInt()
        val calc = 10 / number
        calc
    } catch (e: NumberFormatException) {
        println("数字に変換できませんでした")
        -1
    } catch (e: ArithmeticException) {
        println("0で割ることはできません")
        -2
    } catch (e: Exception) {
        println("その他のエラーが発生しました")
        -999
    }

    println("結果は $result")
}

このコードでは、tryの中で2つの処理を行っています。

  • 文字列を整数に変換:toInt()
  • 10をその数で割る:10 / number

入力が「abc」のように数字でないと、最初のcatchNumberFormatException)が動作します。


数字に変換できませんでした
結果は -1

4. catchは上から順番にチェックされる

4. catchは上から順番にチェックされる
4. catchは上から順番にチェックされる

Kotlinでは、エラーが発生したときにcatchブロックを上から順番に確認していきます。

そのため、特定のエラーを先に書くようにしましょう。もしExceptionを最初に書くと、それが全てを受け取ってしまい、他のcatchは無視されます。

5. 実際に複数のエラーを試してみよう

5. 実際に複数のエラーを試してみよう
5. 実際に複数のエラーを試してみよう

次は、「0」を入力したときの動作を試してみましょう。


fun main() {
    val input = "0"
    val result = try {
        val number = input.toInt()
        val calc = 10 / number
        calc
    } catch (e: NumberFormatException) {
        println("数字に変換できませんでした")
        -1
    } catch (e: ArithmeticException) {
        println("0で割ることはできません")
        -2
    } catch (e: Exception) {
        println("その他のエラーが発生しました")
        -999
    }

    println("結果は $result")
}

0で割ることはできません
結果は -2

このように、状況によって適切なcatchが動作するのがわかります。

6. 複数catchを使うメリットとは?

6. 複数catchを使うメリットとは?
6. 複数catchを使うメリットとは?

複数のcatchを使うことで、エラーの内容に応じて別々の対応ができるようになります。

たとえば、ユーザーに表示するメッセージをわかりやすくしたり、ログに記録する内容を変えたりできます。

7. catchの種類は公式リファレンスで確認できる

7. catchの種類は公式リファレンスで確認できる
7. catchの種類は公式リファレンスで確認できる

使える例外の種類はたくさんありますが、よく使うのは以下のようなものです:

  • NullPointerException:null(ヌル)値を操作したとき
  • IllegalArgumentException:無効な引数を渡したとき
  • IOException:ファイル読み書きでエラーが起きたとき

これらは必要に応じてcatchで追加できます。

8. Kotlinの例外処理をしっかり理解しよう

8. Kotlinの例外処理をしっかり理解しよう
8. Kotlinの例外処理をしっかり理解しよう

Kotlinの例外処理は、プログラムが途中で止まらないように守る大切な仕組みです。

とくに複数のcatchを使うと、より細かい制御ができて、ユーザーにも優しいアプリが作れます。

カテゴリの一覧へ
新着記事
New1
Kotlin
Kotlinの構文ルールまとめ!インデント・セミコロンなど初心者が最初に覚えるべきポイント
New2
Kotlin
Kotlinの関数ドキュメンテーションコメント(KDoc)の書き方を徹底解説!初心者でもわかる丁寧なガイド
New3
Kotlin
KotlinでHello Worldを表示するには?最初の1行を実行してみよう
New4
Go言語
Go言語の依存関係管理を始めよう!go modの基本設定と導入手順
人気記事
No.1
Java&Spring記事人気No1
Go言語
Go言語の関数パラメータ!値渡しと参照渡しの違いを理解しよう
No.2
Java&Spring記事人気No2
Kotlin
KotlinのAPI通信でGETリクエストを送る方法!初心者向け徹底ガイド
No.3
Java&Spring記事人気No3
Kotlin
Gradleファイル(build.gradle.kts)の書き方と役割をやさしく解説!Kotlin初心者向け完全ガイド
No.4
Java&Spring記事人気No4
Swift
SwiftのURLSessionでのネットワークエラー対策!再試行とタイムアウトを初心者向けに解説
No.5
Java&Spring記事人気No5
Go言語
Go言語のテストでタイムアウト・並行処理を扱うポイント
No.6
Java&Spring記事人気No6
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.7
Java&Spring記事人気No7
Go言語
Go言語のWebアプリにおけるセキュリティベストプラクティス集
No.8
Java&Spring記事人気No8
Swift
Swift JSONデコード失敗の原因と対処|DecodingError徹底解説