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

Dartのエラーハンドリングは、他の現代的な言語と共通するtry・catchという書き方が基本です。この記事では、Dartにおけるエラーハンドリングの基本と、Flutter開発での実践的な使い方を解説します。

try・catchの基本

try {
    if (b == 0) {
        throw Exception("0では割れません");
    }
} catch (e) {
    print(e);
}

特定の種類のエラーを扱う

try {
    // 何らかの処理
} on FormatException catch (e) {
    print("形式が正しくありません");
} catch (e) {
    print("その他のエラー");
}

onを使うことで、特定の種類のエラーだけを指定して対処できます。エラーの詳しい情報だけでなく、発生場所(スタックトレース)も知りたい場合はcatch (e, stackTrace)のように第2引数で受け取れます。

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

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

非同期処理でのエラーハンドリング

通信処理などのasync・awaitを使った非同期処理でも、try・catchは同じように使えます。

Future<void> fetchData() async {
    try {
        final response = await http.get(Uri.parse('https://example.com'));
        print(response.body);
    } catch (e) {
        print("通信に失敗しました: $e");
    }
}

Flutterアプリでは通信処理を書く機会が非常に多いため、この非同期処理と組み合わせたtry・catchの書き方には早めに慣れておくとよいでしょう。

Dartならではの注意点

Flutterアプリの開発では、通信エラーや画面表示の問題など、様々な場面でエラーハンドリングが必要になります。特にネットワーク通信を含む処理では、try・catchを使って、利用者にわかりやすいメッセージを表示する工夫が重要になります。エラーを握りつぶして何もしないコードは、問題が起きても気づけないまま放置される原因になるため、少なくともログに出力する習慣をつけましょう。

まとめ

Dartのエラーハンドリングはtry・catch・finallyが基本で、onを使うと特定の種類のエラーだけを扱えます。非同期処理と組み合わせる書き方もFlutter開発では頻繁に使うので、しっかり押さえておきましょう。


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

参考書籍(PR)

Dartをもっと学びたい方には「ゼロから学ぶFlutterアプリ開発」がおすすめです。


PR

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

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

コメント

このブログの人気の投稿

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

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

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