Dart-programming-exceptions
Dartプログラミング-例外
例外(または例外的なイベント)は、プログラムの実行中に発生する問題です。 例外が発生すると、プログラムの通常のフローが中断され、プログラム/アプリケーションが異常終了します。
組み込みのDartの例外には次のものがあります-
Sr.No | Exceptions & Description |
---|---|
1 |
DeferredLoadException 遅延ライブラリがロードに失敗するとスローされます。 |
2 |
FormatException 文字列またはその他のデータに予期される形式がなく、解析または処理できない場合にスローされる例外。 |
3 |
IntegerDivisionByZeroException 数値がゼロで除算されるとスローされます。 |
4 |
IOException Inupt-Outputに関連するすべての例外の基本クラス。 |
5 |
IsolateSpawnException 分離を作成できない場合にスローされます。 |
6 |
Timeout 非同期結果を待っている間にスケジュールされたタイムアウトが発生したときにスローされます。 |
Dartのすべての例外は、事前定義されたクラス Exception のサブタイプです。 アプリケーションが突然終了しないように、例外を処理する必要があります。
try/on/catchブロック
例外を処理するための*構文*は以下のとおりです-
以下は覚えておくべきポイントです-
- コードスニペットは、複数の例外を処理するために複数のon/catchブロックを持つことができます。
- onブロックとcatchブロックは相互に包括的です。 tryブロックは、onブロックとcatchブロックの両方に関連付けることができます。
次のコードは、Dartでの例外処理を示しています-
例:ONブロックの使用
次のプログラムは、変数 x および y でそれぞれ表される2つの数値を除算します。 ゼロによる除算を試みるため、コードは例外をスローします。 on block には、この例外を処理するコードが含まれています。
次の output が生成されるはずです-
例:catchブロックの使用
次の例では、上記と同じコードを使用しています。 唯一の違いは、(ONブロックではなく)* catchブロック*に例外を処理するコードが含まれていることです。 catch のパラメーターには、実行時にスローされる例外オブジェクトが含まれます。
次の output が生成されるはずです-
例:on…catch
次の例は、 on … catch ブロックの使用方法を示しています。
次の output が生成されるはずです-
最後のブロック
次の例は、 finally ブロックの使用法を示しています。
次の output が生成されるはずです-
例外を投げる
明示的に例外を発生させるための*構文*は-
例
次の例は、 throw キーワードを使用して例外をスローする方法を示しています-
次の output が生成されるはずです-
カスタム例外
上記で指定したように、Dartのすべての例外タイプは、組み込みクラス Exception のサブタイプです。 Dartでは、既存の例外を拡張することにより、カスタム例外を作成できます。 カスタム例外を定義するための構文は以下のとおりです-
構文:例外の定義
カスタム例外は明示的に発生させる必要があり、同じ例外をコードで処理する必要があります。
例
次の例は、カスタム例外を定義および処理する方法を示しています。
上記のコードでは、カスタム例外 AmtException を定義しています。 渡された金額が例外範囲内にない場合、コードは例外を発生させます。 main 関数は、 try … catch ブロックで関数呼び出しを囲みます。
コードは、次の*出力*を生成する必要があります-