Kotlinの例外処理の基本!try-catch-finallyの書き方を解説
生徒
「Kotlinでプログラムが途中で止まらないようにエラーを処理するにはどうすればいいんですか?」
先生
「Kotlinではtry-catch-finallyという仕組みを使って、エラー(例外)をキャッチして安全に処理できます。」
生徒
「それって他のプログラムでもよく使うんですか?」
先生
「はい、ほとんどのプログラミング言語で似たような仕組みがあります。初心者でも理解しやすいように具体例で説明しますね。」
1. 例外処理(try-catch-finally)とは?
プログラムを実行しているとき、開発者が予想もしなかったタイミングで発生するトラブルを「例外(Exception)」と呼びます。例えば、「インターネットがつながっていないのにデータを取得しようとした」「数字を入力すべき場所に文字を入力した」といったケースです。
もし例外が発生したとき、何の対策もしていないとアプリは突然強制終了してしまいます。これを防ぎ、エラーが起きても「今は通信が不安定ですよ」と優しくメッセージを出したり、安全に処理を続けたりするために、Kotlinではtry-catch-finallyという構文を使います。
構成は以下の3つの役割に分かれています。
- try : 「エラーが起きるかもしれないけど、まずはやってみる処理」を書く場所です。
- catch : もしエラーが起きたとき、「どうやって助けるか(対処法)」を書く場所です。
- finally : エラーが起きても起きなくても、「最後に必ず片付け」をする場所です。
例えば、お料理で例えると「try:レシピ通りに作る」「catch:焦がしてしまったら作り直す」「finally:最後は必ずコンロの火を消して片付ける」という流れに似ています。プログラミング未経験の方でも、この3つのステップをセットで覚えることで、壊れにくいプログラムが書けるようになります。
2. Kotlinでの例外処理(try-catch-finally)の基本的な書き方
プログラミングをしていると、予期せぬエラー(例外)が発生してアプリが止まってしまうことがあります。そんな時、エラーをスマートに回避して処理を継続させるための仕組みが「例外処理」です。Kotlinでは、主にtry、catch、finallyという3つのブロックを組み合わせて記述します。
まずは、初心者の方でも分かりやすい「0で割り算をしてしまった場合」のサンプルコードを見てみましょう。
fun main() {
// 1. まずはtryの中で実行したい処理を書く
try {
val number = 10
val divisor = 0 // 0で割ろうとするとエラーが発生する
val result = number / divisor
println("計算結果は $result です")
}
// 2. エラーが発生した場合の予備動作をcatchに書く
catch (e: ArithmeticException) {
println("【エラー発生】0で数値を割ることはできません。")
println("詳細メッセージ: ${e.message}")
}
// 3. 成功しても失敗しても必ず実行したい処理をfinallyに書く
finally {
println("計算処理を終了します。")
}
}
【エラー発生】0で数値を割ることはできません。
詳細メッセージ: / by zero
計算処理を終了します。
このプログラムのポイントは、たとえ途中で計算エラーが起きても、アプリが強制終了せずにcatchブロックの内容を実行し、最後にfinallyで綺麗に処理を締めくくっている点です。finallyは、ファイルのクローズ処理やデータベースの切断など、後片付けが必要な場面で非常によく使われる重要なパーツです。
3. 複数の例外をキャッチする
場合によっては、異なる種類の例外をそれぞれ別の方法で処理したいことがあります。その場合はcatchを複数書くことができます。
fun main() {
try {
val text = "abc"
val number = text.toInt() // 数字に変換できない
} catch (e: NumberFormatException) {
println("数値に変換できません: ${e.message}")
} catch (e: Exception) {
println("その他のエラー: ${e.message}")
}
}
4. finallyの活用例
finallyは、ファイルやネットワークの接続を閉じる処理など、必ず実行したい処理を置くのに向いています。
fun main() {
var resourceOpened = false
try {
resourceOpened = true
println("リソースを開きました")
throw RuntimeException("テストエラー")
} catch (e: Exception) {
println("エラー発生: ${e.message}")
} finally {
if (resourceOpened) {
println("リソースを閉じました")
}
}
}
5. tryを式として使う
Kotlinではtryを式として使い、値を変数に代入することができます。これによりコードが簡潔になります。
fun main() {
val number = try {
"123".toInt()
} catch (e: NumberFormatException) {
0
}
println(number)
}
123
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
6. 初心者が気をつけるポイント
- エラーの内容に応じた
catchを使うこと - むやみに例外処理で隠さない(原因がわからなくなる)
- 必ず実行する必要のある処理は
finallyに入れる - 例外処理は必要な範囲だけに限定する
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験