以下是我的一些错误记录代码。当我的应用程序内部发生异常时,我会将其记录到数据库中。如果该数据库已关闭或存在其他问题,我尝试将其记录在事件查看器中。

如果该事件查看器的写入由于某种原因而失败,该怎么办?如何放弃或吞下这个新异常?

void SaveLog(string accountId, Exception ex, Category category, Priority priority)
{
    try
    {
        using (var connection = new SqlConnection(…))
        {
            connection.Open();
            command.ExecuteNonQuery();
        }
    }
    catch (Exception exception)
    {
        // exception while logging!
        using (var eventLog = new EventLog { Source = "tis" })
        {
            eventLog.WriteEntry(
                exception.Message + Environment.NewLine +
                exception.StackTrace,
                EventLogEntryType.Error);
        }
    }
}

最佳答案

try {
    // ...
}
catch (Exception exception) {
    try {
        // Attempt to write to event log.
    }
    catch {
    }
}

关于c# - 如何吞下catch块中引发的异常?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9334213/

10-17 00:57