#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専用の自動化ツールをオーダーメイドで作成しています。気になる方は こちらをご覧ください。
コメント
コメントを投稿