写入事件日志时,我们的应用程序使用枚举生成错误编号以附加到事件日志项。我们的想法是列出我们知道可能出错的内容,并为每个内容分配ID,这样我们就可以在查看事件日志时立即识别出错误。
一个枚举包含表示应用程序中的类的值/ ID,另一个枚举包含表示执行期间可能发生的已知错误的错误代码的值(例如,无效日期= 1,无效金额= 2等等)。 / p>
现在,我们已经检测到方法的输入无效。我们在一个枚举中添加包含方法的相应类ID,从第二个枚举中添加特定的“无效输入”错误,然后将添加结果与消息字符串一起传递给EventLog.WriteEntry()方法
问题在于,当我们将包含枚举值结果的变量传递给WriteEntry()方法时,不会将任何内容写入事件日志。但是,如果值在方法的参数中作为常规整数传递,则会成功写入事件。
有谁知道为什么会这样?
答案 0 :(得分:1)
将两次调用事件日志放入代码中,例如:类似的东西:
EventLog.WriteEntry(1005);
EventLog.WriteEntry(MethodIDs.FirstMethod + ErrorIDs.FifthError);
在第一行放置断点,运行程序,然后单步执行对函数的两次调用,看看会发生什么。
您可能会在几秒钟内发现问题。
答案 1 :(得分:0)
为什么你会在任何情况下使用枚举?
使用Exceptions扩展会不会更有意义?
e.g。 throw new InvalidArgumentException("error message")