Dart にエラーと例外があり、エラーと例外のどちらでもないのはなぜですか?
その理由は歴史的なものですか?
エラーをスローすることも、例外をスローすることもできます。Java のように、Analyzer によってチェックされるものはありません (Exception vs. RuntimeException)。
Dart にエラーと例外があり、エラーと例外のどちらでもないのはなぜですか?
その理由は歴史的なものですか?
エラーをスローすることも、例外をスローすることもできます。Java のように、Analyzer によってチェックされるものはありません (Exception vs. RuntimeException)。
この投稿から、Bob Nystrom を引用します。
エラーとそのサブクラスは、プログラム エラー用です。これらのいずれかが発生した場合は、コードが正しくないため、コードを修正する必要があります。
エラー以外の例外クラスは、実行時エラー用です。投げられるのを防ぐことができる場合もありますが、できないことがよくあります。
いくつかの特別な状況を除いて、慣用的な Dart はエラーをスローする必要がありますが、キャッチすることはありません。それらは、アプリを停止し、バグの場所をプログラマーに警告するために、特に捕まらないように存在します。
つまり、例外が発生することを予期 (およびチェック) する必要があります (例外を処理することが意図されています)。エラーが発生した場合は、エラーをスローしている API の使用方法を確認する必要があります。使用方法が間違っている可能性があります。
API を作成している場合は、同じパターンを使用する必要があります。エラーは、下流の開発者が API をどのように使用しているかについてのメッセージです。