3

1 つのクラスで例外をスローし、それらすべての例外を C# の別の例外クラスでキャッチできますか?

ここで私の質問は、値が == null のときはいつでも、そこにメッセージを表示していることです。値がnullに等しい場合、例外を使用する必要があります。次のような例外をスローできますか

if(customer == null)
        throw new CustomerNullException();
if(incometype == null)
        throw new IncomeTypeNullException();

これらの例外を別のクラスで処理できますか??

4

3 に答える 3

0

例外は、例外的な状況 (haw haw haw) の場合にのみ保存する必要があります。スタック トレースなど、例外が保存して渡すメタデータのため、パフォーマンスが非常に高くなります。結果として、通常は遭遇しないと思われるエラーをデバッグ、キャッチ、および処理する必要があるのは良いことですが (ただし、null であってはならないパラメーターが null として渡された場合などに備えておく必要があります)、プログラムの通常の機能には適していません。

通常のプログラム機能で発生すると予想される特別なエラー状況がある場合は、目的のエラー パラメータを渡す独自のエラー ハンドラ クラスを外部で使用するか、何らかの検証を使用します。myCollection.pop(何らかの理由で) コレクションが空かどうかをプログラムがチェックしない可能性があるため、空のデータ構造に対して同様の処理を行っても例外をスローする必要はありません。ただし、Null を返したり、errorHandler クラスを呼び出したりして、データ構造が空の場合に必要なことを行うことができます。

于 2013-08-28T16:08:10.593 に答える
0

Exceptions are really bad idea for handling errors. You should rethink your error handling architecture as exceptions have huge overhead. Please read Exceptions and Performance by Jon Skeet.

于 2013-08-28T14:14:11.767 に答える