如果发生异常,如何关闭WPF应用程序?

时间:2012-10-04 15:56:28

标签: c# wpf .net-4.0

  

可能重复:
  shutdown wpf while messagebox open

我目前有这样的代码,但问题是,即使我在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);
        }
    }

1 个答案:

答案 0 :(得分:5)

该异常已被处理,因此不会冒出来。

您有几种选择:

  • 在记录之后重新抛出异常,导致异常继续冒泡(假设没有其他异常处理程序)并导致进程因未处理的异常而中止:

    throw;
    
  • 使用Environment.Exit

    明确关机
    Environment.Exit(-1);
    
  • 另一个选项是Application.Shutdown

    Application.Current.Shutdown();
    

Rethrowing会向用户显示错误。其他两个选项不会。

相关问题