c# - 捕获 block 中的错误

标签 c# compiler-errors

我正在开发一个桌面应用程序,当我想在事件日志中处理 catch block 中的错误时,我得到了一个错误

Error 3 The type or namespace name 'EventLog' could not be found (are you missing a using directive or an assembly reference?)

在这

catch (Exception ex)
{
    EventLog log = new EventLog("Application");
    log.Source = "MFDBAnalyser";
    log.WriteEntry(ex.Message);
}

等待建议。

最佳答案

添加到顶部:

using System.Diagnostics;

或者直接使用:

catch (Exception ex)
{
    System.Diagnostics.EventLog log = new System.Diagnostics.EventLog("Application");
    log.Source = "MFDBAnalyser";
    log.WriteEntry(ex.Message);
}

或者如果您使用的是 .NET 3.5 或 4.0/VS 2008 或 2010(首选方式):

catch (Exception ex)
{
    using (var log = new System.Diagnostics.EventLog("Application") { Source = "MFDBAnalyser" })
    {
        log.WriteEntry(ex.Message);
    }
}
  • 关键字 var 减少了代码长度。
  • 您应该为实现 IDisposable 的类调用 Dispose()(或使用 using block )!

关于c# - 捕获 block 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4244425/

相关文章:

javascript - 控制台错误消息中未指定行号。该怎么办?

c++ - 使用 Nvidia GPU Computing 工具包和 Cygwin with Eclipse 编译错误

c# - 不同编程语言中的 Windows 小工具风格行为

c# - 如何在固定时间内更改按钮的 backColor?

c# - 如何在 Mono 中收集系统信息?

C# 混淆类层次结构中显式类型转换的必要性

c# - 如何验证集合是否包含所有唯一对象

java - while 循环中的 ObjectInputStream readObject

java - 当枚举类型至少包含一个 "extended"枚举时,为什么将枚举强制转换为任何接口(interface)都不会导致 Java 中的编译错误?

c - 苹果操作系统 "configure: error: cannot run C compiled programs"