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

Kotlinのtry式とは?初心者でもわかる例と使い方をやさしく解説

Kotlinのtry式(式としての使い方)を初心者向けに解説
Kotlinのtry式(式としての使い方)を初心者向けに解説

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

生徒

「先生、Kotlinのtryって、例外処理だけに使うものなんですか?」

先生

「いい質問ですね。実はKotlinでは、tryは“式”としても使えるんです。」

生徒

「“式”ってなんですか?初めて聞きました……」

先生

「大丈夫、初心者でもわかるように、これからやさしく解説しますね!」

1. Kotlinのtryは“文”ではなく“式”としても使える

1. 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式の基本的な書き方と代入の仕組み

2. 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式は「変数への代入」で真価を発揮する

3. try式は「変数への代入」で真価を発揮する
3. try式は「変数への代入」で真価を発揮する

Kotlinのtryは、単なるエラー処理の枠組みではなく、「結果をそのまま変数に代入できる」という非常に便利な特徴(try式)を持っています。これにより、プログラムが途中で止まるのを防ぎつつ、安全に初期値を設定できるのです。

例えば、アプリの入力画面でユーザーが数字を入力する場面を想像してみましょう。もしユーザーが間違えて「あいうえお」と入力してしまった場合、そのまま計算しようとするとアプリは強制終了してしまいます。しかし、try式を使えば「失敗したらこの値にする」という動きをスマートに記述できます。


fun main() {
    // ユーザーからの入力を想定(数字ではない文字列)
    val userInput = "abc"

    // tryの結果を直接numberに代入する
    val number = try {
        userInput.toInt() // 整数への変換に挑戦!
    } catch (e: NumberFormatException) {
        // もし数字以外の文字でエラー(例外)が出たら、安全のために「0」を返す
        0
    }

    println("変換結果は $number です。")
    println("エラーが起きてもプログラムは止まらずに、次の処理へ進めます。")
}

このコードでは、toInt()という関数が失敗した瞬間にcatchブロックへとジャンプし、最後に書かれた0という値が変数numberに格納されます。Javaなどの古い言語では、変数を一度空で宣言してから後で代入し直す必要がありましたが、Kotlinならこのように一行でスッキリと、かつ「プログラミング未経験者」でも直感的に読みやすい形で書けるのが大きなメリットです。


変換結果は 0 です。
エラーが起きてもプログラムは止まらずに、次の処理へ進めます。

4. try式でのfinallyブロックの扱い

4. try式でのfinallyブロックの扱い
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式の中で関数を呼び出すこともできる

5. try式の中で関数を呼び出すこともできる
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も柔軟に使える

6. Javaとの違い:Kotlinはtryもreturnも柔軟に使える
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つの体験

1. 自分のパソコンが「開発基地」に

プロと同じ道具を揃えることで、明日から一人でもプログラミングを続けられる環境が整います。

2. プログラミングの「仕組み」がスッキリ

「変数」や「型」といった難しい言葉も、身近な例え話で解説。モヤモヤをゼロにします。

3. 「読みやすい」から「直せる」へ

Kotlinは英語に近くて読みやすいのが特徴。自分でコードを読んで、間違いを見つけるコツも伝授します。

※本講座は、パソコン操作が不安な方でも安心して受講いただける完全マンツーマンです。あなたのペースに合わせて、一つずつ丁寧に進めていきます。

セミナー画像

Kotlinで始めるプログラミング入門|ゼロから「動く喜び」を体験

カテゴリの一覧へ
新着記事
New1
Go言語
Go言語のVSCode開発環境構築完全ガイド!初心者でもわかる拡張機能と設定方法
New2
Kotlin
Kotlinの文字列を1文字ずつ処理する方法!for文とforEachの使い方を初心者向けに解説
New3
Kotlin
Kotlinの文字列比較の方法を徹底解説!==とcompareToの使い方を初心者向けにわかりやすく紹介
New4
Kotlin
Kotlinのrepeatメソッドの使い方を完全解説!初心者でもわかる文字列の繰り返し処理
人気記事
No.1
Java&Spring記事人気No1
Kotlin
Android Studioのインストール手順と初期設定を初心者向けに完全解説!
No.2
Java&Spring記事人気No2
Swift
Swift開発環境の構築方法を徹底解説!Xcode・Windows・Linux対応
No.3
Java&Spring記事人気No3
Kotlin
Kotlinでテキスト表示・編集!初心者でもわかるTextViewとEditTextの使い方
No.4
Java&Spring記事人気No4
Swift
Swift Playgroundの使い方を完全解説!初心者に最適な学習環境の始め方
No.5
Java&Spring記事人気No5
Kotlin
Kotlin Multiplatformライブラリの活用例と導入方法を初心者向けに解説!Android・iOS・Webを1つのコードで開発
No.6
Java&Spring記事人気No6
Kotlin
Kotlinで定数を定義する方法!変更されない変数の書き方と命名ルール
No.7
Java&Spring記事人気No7
Go言語
Go言語でリダイレクト処理を行う方法(http.Redirect)を初心者向けに解説
No.8
Java&Spring記事人気No8
Go言語
Go言語のクリーンアーキテクチャの基本概念と実装例!初心者でもわかる設計パターン完全ガイド