Kotlinのtry式とは?初心者でもわかる例と使い方をやさしく解説
生徒
「先生、Kotlinのtryって、例外処理だけに使うものなんですか?」
先生
「いい質問ですね。実はKotlinでは、tryは“式”としても使えるんです。」
生徒
「“式”ってなんですか?初めて聞きました……」
先生
「大丈夫、初心者でもわかるように、これからやさしく解説しますね!」
1. Kotlinのtryは“文”ではなく“式”としても使える
Kotlin(コトリン)の大きな特徴の一つに、tryが「式(しき)」として扱えるという点があります。Javaなどの他の言語では、tryは単にエラーを防ぐための「文(構文)」でしたが、Kotlinでは実行した結果として「値」を返してくれる便利な仕組みになっています。
ここで言う「式」とは、計算や処理のあとに結果(値)が手元に残るものを指します。身近な例で考えてみましょう。
- 式(Expression):
1 + 1のように、計算すると「2」という結果が返ってくるもの。 - 文(Statement):
println("Hello")のように、処理を実行するだけで、それ自体が値を持たないもの。
Kotlinのtryは式なので、エラーが起きなかった時の値や、エラーが起きた時の代わりの値を、そのまま変数(valなど)に代入することができるのです。これにより、コードが非常にシンプルで読みやすくなります。
まずは、プログラミングが初めての方でも分かりやすい「おみくじ」のようなイメージで、式としての動きを見てみましょう。
fun main() {
// tryの結果をそのまま変数「message」に代入しています
val message = try {
"ラッキー!成功です" // エラーがない場合はこの値が返る
} catch (e: Exception) {
"残念、エラーが発生しました" // エラーが出た場合はこの値が返る
}
println(message)
}
このコードでは、tryブロックの最後の一行が「式の戻り値」となります。このように「エラーを監視しながら、同時に結果を受け取る」ことができるのが、Kotlin流のスマートな書き方です。わざわざtryの外側で空の変数を作っておく必要がないため、バグの少ない安全なプログラムを書くことができます。
2. try式の基本的な書き方と代入の仕組み
Kotlinのtryは、単なるエラー処理の構文ではなく、「結果を値として返すことができる」という便利な特徴を持っています。これを「式(Expression)」と呼びます。
プログラミングが初めての方でも分かりやすいように、割り算の結果を変数に代入するシンプルな例を見てみましょう。もし計算中にエラーが起きても、プログラムが強制終了せずに、あらかじめ決めた「安全な値」を返してくれます。
fun main() {
// tryの結果を変数resultに直接代入します
val result = try {
// 通常通り実行したい処理(ここでは 10 ÷ 2)
10 / 2
} catch (e: ArithmeticException) {
// エラー(0での割り算など)が発生したときに返す値
0
}
println("計算結果は $result です")
}
このプログラムの動きを詳しく解説します。まずtryブロックの中が実行され、10 / 2の結果である「5」が導き出されます。このとき、エラーが発生しなければ、そのままresultという変数に「5」が格納されます。
一方で、もし10 / 0のような計算(0除算エラー)を行おうとした場合は、即座にcatchブロックへ処理が移り、そこに記述された「0」がresultに代入される仕組みです。このように、「成功時の値」と「失敗時の値」をスマートに使い分けられるのがKotlinのtry式のメリットです。
計算結果は 5 です
例外処理と変数への代入を1か所で完結できるため、コードがスッキリとして読みやすくなり、記述ミス(バグ)を減らす効果も期待できます。初心者の方は、まずはこの「変数に代入する形」をセットで覚えるのがおすすめです。
3. try式は変数代入に便利
try式を使うことで、エラーがあっても安全に値を設定できます。例えば、ユーザーが入力した数字を整数に変換したいときにも使えます。
fun main() {
val input = "123"
val number = try {
input.toInt()
} catch (e: NumberFormatException) {
-1
}
println("変換結果は $number です")
}
この例では、文字列"123"を数値に変換しています。toInt()で失敗するとcatchに入り、-1が代入されます。
変換結果は 123 です
4. try式でのfinallyブロックの扱い
try式にはfinallyも使えますが、finallyは結果には影響しません。必ず最後に実行される処理を書くだけです。
fun main() {
val result = try {
10 / 2
} catch (e: Exception) {
0
} finally {
println("後処理を行います")
}
println("結果は $result")
}
この例では、finallyの中のprintlnは実行されますが、resultの値には関係ありません。
後処理を行います
結果は 5
5. try式の中で関数を呼び出すこともできる
さらに応用として、try式の中で関数を呼び出すことも可能です。
fun safeDivide(a: Int, b: Int): Int {
return try {
a / b
} catch (e: ArithmeticException) {
-1
}
}
fun main() {
val result = safeDivide(10, 0)
println("安全な割り算の結果: $result")
}
このコードでは、0で割ろうとしてもエラーを出さずに-1を返します。こうすることで、安全にプログラムを続けられます。
安全な割り算の結果: -1
Kotlinを基礎からしっかり学びたい人や、 Java経験を活かしてモダンな言語にステップアップしたい人には、 定番の入門書がこちらです。
基礎からわかるKotlinをAmazonで見る※ Amazon広告リンク
6. Javaとの違い:Kotlinはtryもreturnも柔軟に使える
Javaではtryは「文」としてしか使えないので、returnの中に書くのは少し面倒です。でも、Kotlinではtry式として扱えるので、関数の中で直接return try { ... }と書けます。
fun getNumber(input: String): Int {
return try {
input.toInt()
} catch (e: NumberFormatException) {
-1
}
}
このように、関数の戻り値としてtryを直接使えるのがKotlinの魅力です。
【未経験OK】Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験する60分
「プログラミングを始めたい」を形にする。最新言語Kotlinで楽しむ、ものづくりの第一歩。
本講座は、プログラミング経験が全くない方のためのエントリー講座です。「コードを書くってどういうこと?」という基本から、世界中で使われている最新言語Kotlin(コトリン)を使って、実際にプログラムを動かすまでを体験します。難しい理屈よりも、まずは「自分の手で動かす楽しさ」を最短距離で実感していただきます。
具体的な体験内容と環境
【つくるもの】
簡単な言葉を入力すると自動で返答してくれる「対話型ミニプログラム」や、計算を自動化する「便利ツール」をゼロから作成します。黒い画面に自分の書いた文字が表示される瞬間は、最高の感動体験です。
【開発環境】
プロのエンジニアが実際に使っている開発ツールIntelliJ IDEA(インテリジェイ)をインストールします。ボタン一つで日本語化し、初心者でも迷わず操作できる「魔法の設定」を一緒に行います。
この60分で得られる3つの体験
プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。
「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。
Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。
※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。
Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験