Dart Academy · レッスン

on句と例外型

特定のエラーを正確に捕捉する

レッスン 2/413 ステップ

「on句と例外型」はCoddyKit上の無料Dart Academyレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはDart Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 Dart Academyコースには全4レッスンが含まれています。

すべてのエラーが同じとは限らない

ファイルエラーと形式エラーは異なる問題です。Dartでは、型によって捕捉する例外を分け、それぞれに適した対応ができます。🎯

onキーワード

onを使うと、1つの例外型だけを捕捉できます。そのブロックは、指定した種類のエラーが投げられた場合にだけ実行されます。

try {
  parse();
} on FormatException {
  print('Bad format');
}

オブジェクトも取得する

onとcatchを組み合わせると、型で絞り込みながら、メッセージの詳細を確認するためのエラーオブジェクトも取得できます。

on FormatException catch (e) {
  print(e.message);
}

順序が重要

Dartはon節を上から順に確認し、最初に一致したものを使います。具体的な型を一般的な型より先に置かないと、具体的な節は実行されません。

複数のon節

1つのtryに複数のon節を並べられます。それぞれ異なる例外型を、専用のロジックで処理します。

try {
  work();
} on FormatException {
} on RangeError {
}

最後にすべてを捕捉する

型を指定しない通常のcatchは、それまでに捕捉されなかったすべての例外を捕捉します。型付きの節の後に置き、最後の安全網にします。

} on FormatException {
} catch (e) {
  print('Other: $e');
}

ExceptionとErrorの違い

Dartでは、復旧可能な問題をException、修正すべきプログラミング上のバグをErrorとして区別します。後者は捕捉するのではなく修正すべきものです。

よく使う組み込み型

FormatException、RangeError、StateError、ArgumentErrorなどに出会うことになります。これらを知っていれば、正確に捕捉できます。

スーパータイプを捕捉する

on Exception節は、Exceptionのすべてのサブタイプに一致します。関連する複数のエラーを1つのハンドラーで処理する場合に、広い型を使います。

try {
  go();
} on Exception catch (e) {
  log(e);
}

型で絞り込むメリット

型付きハンドラーを使うとコードが明確になります。1つの巨大なcatchで推測するのではなく、ファイルがない場合と入力が不正な場合で異なる対応ができます。

組み合わせて使う

これは、具体的なものから一般的なものへ処理する流れを示しています。まず型付きのon節で処理し、その後にすべてを捕捉する節で残りを安全に処理します。

try {
  run();
} on FormatException catch (e) {
  print(e);
} catch (e) {
  print('Unknown');
}

理解度チェック

特定の例外型だけを捕捉するには、どうすればよいですか?

まとめ

これで、onを使ってエラーを対象にし、具体的な節を先に置き、最後にすべてを捕捉する安全網を追加できるようになりました。正確な処理で、コードもすっきりします。✅

無料で開始

AI チューターと学ぶ Dart — 無料

ブラウザでリアルコードを書いて実行し、24/7 の AI チューターから瞬時にサポートを受け、ウェブまたはアプリで続きから学習できます。

コース
30
レッスン
120

よくある質問

「on句と例外型」レッスンは無料ですか?

はい。「on句と例外型」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、Dart Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 Dart Academyコースには全4レッスンが含まれています。

「on句と例外型」で何を学びますか?

特定のエラーを正確に捕捉する ブラウザで直接実行するハンズオンコードでDart Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。

Dart Academyを始めるのに経験は必要ですか?

事前経験は必要ありません。CoddyKitのDart Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。

「on句と例外型」レッスンにはどのくらい時間がかかりますか?

ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。

このDart Academyレッスンでコードを書いて実行できますか?

はい。すべてのDart Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。

このコースのすべてのレッスン

  1. throw、try、catch
  2. on句と例外型
  3. finallyと確実なクリーンアップ
  4. カスタム例外とrethrow
← Dart Academyに戻る