3

写入事件日志时,我们的应用程序使用枚举生成错误号以附加到事件日志项。这个想法是列出我们知道可能出错的事情,并为每个事情分配 ID,以便我们可以在查看事件日志时立即识别出问题所在。

一个枚举包含表示应用程序中的类的值/ID,另一个枚举包含表示执行期间可能发生的已知错误的错误代码的值(例如,无效日期=1、无效金额=2 等等)。

现在,假设我们检测到方法的无效输入。我们将包含来自第一个枚举的方法的适当类 ID 和来自第二个枚举的特定“无效输入”错误相加,然后我们将添加的结果与消息字符串一起传递给 EventLog.WriteEntry () 方法.

问题是,当我们将包含枚举值添加结果的变量传递给 WriteEntry() 方法时,没有任何内容被写入事件日志。但是,如果该值作为方法参数中的常规整数传递,则事件写入成功。

有谁知道为什么会这样?

4

2 回答 2

1

将两个对事件日志的调用放入您的代码中,例如:

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 回答