28

C#にはJavaのjava.lang.RuntimeExceptionと同等のものがありますか?

(つまり、キャッチする必要なしにスローできる例外、または例外がスローされたときにプログラムがクラッシュします。)

4

5 に答える 5

24

SystemException は同等であり、.NET コードによって発生する可能性があるすべての例外の基本クラスです。アプリケーション例外とは対照的です。

ただし、コメントから、この例外をキャッチしたいようです。その場合、SystemExceptionを決して使用しないでください。キャッチが多すぎます。Exception から派生した独自の例外クラスを作成します。

.NET には例外仕様はありません。それが必要な場合に備えてです。

于 2011-03-23T20:03:04.137 に答える
1

.NET では、未処理の例外が発生すると、プログラム フローは失敗します。Windows アプリはあきらめ、ASP.NET アプリケーションは Global.asax の Application_Error ハンドラーまでバブルします。

その点では、いいえ。ただし、おそらく、あなたがしようとしていることの例を含めることができ、解決策を得るためのパターンまたはアプローチに関する提案を提供できます.

于 2011-03-23T18:45:58.950 に答える
0

そうは思わない。しかし、なぜあなたはそれが欲しいのですか?ほとんどの場合、.NETシステムの他の部分で目標を達成できます。

于 2011-03-23T18:44:27.983 に答える
0

.NET にはこれとまったく同じものはありませんが、ある程度シミュレートすることはできます。アプリケーションのエントリ ポイントを 1 回の try/catch でラップし、探している例外をキャッチして飲み込むこともできますが、多くの人はお勧めしません。より近いものがそれをキャッチした場合、それは素晴らしいことです。

これはDispatcherUnhandledException、WPF のイベントのように、いくつかの方法で構築されています。イベントを処理しDispatcherUnhandledExceptionEventArgs.Handled = true、アプリケーションを実行し続けるように設定できます。

一般的に、このパターンはお勧めしません。代わりに使用Trace.WriteLineし、必要に応じて Trace リスナーを記述します。注意: 例外は例外的です。予期しない状態で続行するよりも、アプリケーションを停止する方がよいことを意味する異常な事態が発生します。

于 2011-03-23T19:26:21.067 に答える