#11 Kotlinで学ぶエラーハンドリングの基本

Kotlinのエラーハンドリングは、Javaの仕組みを引き継ぎつつ、より簡潔に書ける工夫がされています。この記事では、Kotlinにおけるエラーハンドリングの基本を解説します。

try・catchの基本

try { val result = 10 / 0 } catch (e: ArithmeticException) { println("0では割れません") }

Javaと同じく、`try`ブロックの中で例外が発生すると、対応する`catch`ブロックに処理が移ります。複数の`catch`を並べて、例外の種類ごとに異なる処理を書くこともできます。

tryが値を返せるという特徴

以前の記事で触れた「値を返すif」と同じように、Kotlinの`try`も式として値を返せます。

val result = try { text.toInt() } catch (e: NumberFormatException) { 0 }

「変換できればその値、できなければ0」という処理を簡潔に書けます。Javaであれば、変数を`try`の外で宣言しておき、`catch`の中で代入する、といった回りくどい書き方が必要になる場面です。

finallyという必ず実行される部分

try { // 何らかの処理 } finally { println("処理が終わりました") }

`finally`ブロックは、例外が発生してもしなくても必ず実行されます。ファイルを閉じる、接続を切断するといった後片付け処理を書くのに適しています。

独自の例外クラスを作る

アプリケーション固有のエラーを表現したい場合は、`Exception`を継承した独自クラスを作ることもできます。

class InsufficientBalanceException(message: String) : Exception(message) throw InsufficientBalanceException("残高が不足しています")

Kotlinならではの注意点

Kotlinには、Javaの「チェック例外」のような、あらかじめ宣言が必要な仕組みがありません。どんな例外でも自由に`try`・`catch`で扱えますが、その分、対処すべきエラーを見落とさないよう、自分で意識しておく必要があります。またKotlinでは、値が存在しないかもしれない状態を`null`許容型で表現できるため、例外を投げる代わりに`null`を返すという設計もよく使われます。「異常事態は例外で表す」のか「起こりうる結果としてnullで表す」のか、状況に応じて使い分けると、より読みやすいコードになります。

まとめ

Kotlinのエラーハンドリングは`try`・`catch`が基本で、`try`を式として使える簡潔さが特徴です。チェック例外がない分、見落としに注意しつつ、null許容型との使い分けも意識しましょう。


本ページはプロモーションを含みます。

参考書籍(PR)

Kotlinをもっと学びたい方には「やさしいKotlin入門」がおすすめです。


PR

コードを書かずに自動化したい方へ

「学んだけど自分の作業に組み込む時間がない」という方向けに、ダブルクリックで動く Windows専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。

コメント

このブログの人気の投稿

#25 Rustで学ぶAI API(ChatGPT等)の呼び出し方の基本

#8 C++で学ぶ文字列操作の基本

#16 TypeScriptで学ぶ辞書型(マップ)の基本