3

イベントログに書き込むとき、アプリケーションは列挙型を使用してエラー番号を生成し、イベントログアイテムに添付します。アイデアは、問題が発生する可能性があることがわかっているものをリストし、それぞれにIDを割り当てて、イベントログを表示するときに問題が発生したことをすぐに特定できるようにすることです。

1つの列挙型にはアプリケーションのクラスを表す値/IDが含まれ、別の列挙型には実行中に発生する可能性のある既知のエラーのエラーコードを表す値が含まれます(たとえば、無効な日付= 1、無効な金額= 2など)。

ここで、メソッドへの無効な入力を検出したとします。1つの列挙型からのメソッドと2番目の列挙型からの特定の「無効な入力」エラーを含む適切なクラスIDを合計し、追加の結果をメッセージ文字列とともにEventLog.WriteEntry()メソッドに渡します。 。

問題は、列挙値の加算の結果を含む変数をWriteEntry()メソッドに渡すと、イベントログに何も書き込まれないことです。ただし、値がメソッドのパラメーターで通常の整数として渡された場合、イベントは正常に書き込まれます。

なぜこれが起こっているのか誰かが知っていますか?

4

2 に答える 2

1

イベントログへの2つの呼び出しをコードに入れます。たとえば、次のようになります。

EventLog.WriteEntry(1005);
EventLog.WriteEntry(MethodIDs.FirstMethod + ErrorIDs.FifthError);

最初の行にブレークポイントを設定し、プログラムを実行してから、関数への両方の呼び出しをシングルステップで実行し、何が起こるかを監視します。

おそらく数秒以内に問題が見つかるでしょう。

于 2009-06-16T07:28:20.647 に答える
0

とにかくそれらに列挙型を使用するのはなぜですか?

例外の拡張機能を使用する方がはるかに理にかなっていますか?

例えばthrow new InvalidArgumentException("error message")

于 2009-06-16T07:27:25.203 に答える