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

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

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

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

生徒

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

先生

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

生徒

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

先生

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

1. Kotlinの例外処理とは?エラーを回避する仕組み

1. Kotlinの例外処理とは?エラーを回避する仕組み
1. Kotlinの例外処理とは?エラーを回避する仕組み

Kotlin(コトリン)でアプリやシステムを開発していると、コードの書き方は正しくても、実行中に予期せぬトラブルが発生することがあります。たとえば、ユーザーが「年齢」を入力する欄に、間違えて「あいうえお」という文字を入力してしまったらどうなるでしょうか?

コンピュータは数字として計算しようとしますが、文字なので処理ができず、プログラムが強制終了(クラッシュ)してしまいます。このような実行時に起きる予期せぬエラーを例外(Exception:エクセプション)と呼びます。

なぜ例外処理が必要なの?

例外を放置すると、アプリが突然真っ暗になって閉じたり、保存されていないデータが消えたりしてしまいます。これを防ぎ、エラーが起きても「正しくエラーメッセージを表示して、安全に処理を続ける」ために、Kotlinではtry-catchという仕組みを使います。

まずは、例外が発生してプログラムが止まってしまう簡単な例を見てみましょう。


fun main() {
    val text = "こんにちは"
    // 文字列を数値に変換しようとすると、ここでエラー(例外)が発生します
    val number = text.toInt() 
    
    println("この行は実行されません")
}

このコードを実行すると、toInt()の部分で「数字じゃないよ!」というエラー(NumberFormatException)が発生し、その下のprintlnまでたどり着かずにプログラムが終了してしまいます。この「困った状況」をスマートに解決するのが、これから解説するtry-catchの役割です。

2. 例外(Exception)の種類とよくある具体例

2. 例外(Exception)の種類とよくある具体例
2. 例外(Exception)の種類とよくある具体例

JavaやKotlinなどのプログラミングにおいて、エラー(例外)は決して怖いものではありません。「どんなミスが起きたのか」をコンピュータが教えてくれる大切なサインです。代表的な例外の種類を、初心者がつまずきやすい具体例と一緒に見ていきましょう。

  • ArithmeticException(算術例外)
    数学的に不可能な計算(0での割り算など)をした時に発生します。
  • NumberFormatException(形式例外)
    「あいうえお」という文字を無理やり数字に変換しようとした時に発生します。
  • ArrayIndexOutOfBoundsException
    用意したリストの箱の数を超えて、存在しない番号の中身を見ようとした時に発生します。

実際のコードで、わざとエラーを起こしてみるサンプルを確認してみましょう。ここではKotlinを例にします。


fun main() {
    val text = "100円" // 数字以外の文字が入っている
    
    try {
        // 文字列を数値に変換しようとする
        val number = text.toInt() 
        println("数値は ${number} です")
    } catch (e: NumberFormatException) {
        // 数字に変換できない文字が含まれていた場合の処理
        println("【エラー発生】入力された値が正しい数字ではありません。")
    } catch (e: ArithmeticException) {
        // 0で割るなどの計算ミスが起きた場合の処理
        println("【エラー発生】計算方法に誤りがあります。")
    }
}

このように、例外の種類ごとに個別の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で追加できます。

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

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

※ Amazon広告リンク

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

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

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
Go言語
Go言語で条件式を1行で書くコツ!三項演算子の代替と短縮記法
No.7
Java&Spring記事人気No7
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.8
Java&Spring記事人気No8
Kotlin
Kotlinの演算子一覧と使い方!算術・比較・論理演算子の基本を解説