【发布时间】:2018-08-24 13:49:38
【问题描述】:
我有一个非交互式应用程序,我需要在实例化日志文件之前加载一些字符串字段。有一种方法可以将文本文件的内容读入字段。如果路径不存在,我希望应用程序事件日志中的异常列出试图访问的路径。这是我尝试过的:
try
{
string contents = File.ReadAllText(path);
}
catch (FileNotFoundException)
{
throw new FileNotFoundException(string.Format("Path not found: {0}",path));
}
当我使用此代码运行我的测试应用程序时,控制台窗口中的异常文本符合预期:
Unhandled Exception: System.IO.FileNotFoundException: Path not found: C:\temp\notthere.txt
但是,事件日志中记录的异常详细信息不包括异常消息文本:
Application: ConsoleApp3.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: System.IO.FileNotFoundException
at ConsoleApp3.Program.Main(System.String[])
是否可以让 .NET 自动记录更多异常详细信息,还是我只需要添加代码自行写入事件日志?
【问题讨论】:
-
您捕获
FileNotFoundException异常并抛出新异常,从而丢失了可能有用的细节。至少将先前的异常附加为内部异常。