以下是我的一些错误记录代码。当我的应用程序内部发生异常时,我会将其记录到数据库中。如果该数据库已关闭或存在其他问题,我尝试将其记录在事件查看器中。
如果该事件查看器的写入由于某种原因而失败,该怎么办?如何放弃或吞下这个新异常?
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/