我目前有这样的代码,但问题是,即使我在MessageBox
提供的NLog
中显示错误,我想关闭应用,因此用户可以修复问题,但应用程序在消息框中单击确定后继续。
private void Load(string fileName)
{
try
{
var environments = GetEnvironments(fileName);
}
catch (FileNotFoundException ex)
{
logger.Error(ex.StackTrace);
}
catch (Exception ex)
{
logger.Error(ex.StackTrace);
}
}
答案 0 :(得分:5)
该异常已被处理,因此不会冒出来。
您有几种选择:
在记录之后重新抛出异常,导致异常继续冒泡(假设没有其他异常处理程序)并导致进程因未处理的异常而中止:
throw;
Environment.Exit(-1);
另一个选项是Application.Shutdown:
Application.Current.Shutdown();
Rethrowing会向用户显示错误。其他两个选项不会。