3

重複の可能性:
.NET で例外がチェックされないのはなぜですか?

私の記憶が正しければ、Java は、呼び出されたメソッドがスローする例外をキャッチして処理することを強制します。.NET が同じことをしないのはなぜですか?

4

3 に答える 3

11

Java のこの機能は、チェック済み例外として知られています。C# の作成者である Anders はインタビューを行い、なぜそれらが C# に含まれず、結果として VB.Net に含まれなかったのかを詳細に説明しました。

C# にも CLR にもチェック例外が含まれていない場合、VB.Net にチェック例外を含める理由が本当にないため、結果として VB.Net と言います。VB は、例外を含まないモデルからすでに大規模な変革を遂げていました。CLR の残りの部分とはまったく異なる新しい例外モデルを導入すると、効果がなくなり、ユーザーの混乱が生じ、言語間の互換性の問題がさらに増える可能性があります。

于 2010-07-09T19:25:30.830 に答える
3

The Trouble with Checked Exceptions を読むことをお勧めします。ここでは、主任 C# アーキテクトである Anders Hejlsberg が Bruce Eckel および Bill Venners と、チェック済み例外のバージョン管理とスケーラビリティの問題について語っています。

于 2010-07-09T19:26:02.047 に答える
2

例外が発生したメソッドで例外をすぐに処理したくない場合があります。

どうしようもないこともある。

たとえば、データベースからデータを取得していて、データの取得に問題がある場合、データ アクセス レイヤーは問題を処理するのに最適な場所ではない可能性があります。適切な情報をユーザーに表示できるビジネス ロジック層またはプレゼンテーション層まで、例外をバブルアップできるようにする方がよい場合があります。

.Net では、一般的なアプローチは、何かできる場合にのみ例外を処理することです。多くの場合、ユーザーに有益な情報を提供することしかできません。

于 2010-07-09T19:28:17.040 に答える