【问题标题】:C# - Stopping a Forms application on exceptionC# - 在异常时停止 Forms 应用程序
【发布时间】:2017-11-13 09:48:37
【问题描述】:

我正在创建一个 Windows 窗体应用程序,我需要一些帮助来处理异常。

我的应用程序会做什么(概述):一开始就接受用户的输入。当用户点击Finish 按钮时,输入被处理。根据给定的输入,执行某些计算。之后,使用msiexec /x 命令卸载应用程序(作为单独的进程启动)。

如果在输入处理期间(即卸载任务之前)出现异常,我调用的是Application.Exit()方法。下面的代码 sn -p 可能会给你一个想法:

try
{
    //some processing
}
catch (Exception exc)
{
    DisplayErrorMessage();
    WriteToLog(exc.Message);
    WriteToLog("Inner Exception: " + exc.InnerException);
    Application.Exit();
}

我的观察:如果在处理期间遇到任何异常,Process.Start() 方法将返回 null

有人能说出为什么会这样吗?有没有办法克服这个问题?

P.S:我需要如何修改我的代码,以便如果之前发生异常,该过程甚至不会启动?

【问题讨论】:

  • 什么时候打电话给Process.Start()
  • 我在 catch 块执行后调用它
  • 您应该在catch 中添加return 以防止代码运行后。
  • 尝试在Application.Exit() 之后添加退货。对于进程开始返回空检查stackoverflow.com/questions/27427404/…
  • 或者把 Process.Start() 放到 Try 块中

标签: c# winforms exception-handling


【解决方案1】:

我发现调用Environment.Exit(1) 实际上会终止表单应用程序,而这不是通过调用Application.Exit() 方法来完成的。

更多信息可以通过以下链接获得:How to properly exit a C# application?

【讨论】:

    猜你喜欢
    • 2012-02-08
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 2011-02-02
    • 2010-11-27
    • 1970-01-01
    • 2011-07-04
    • 2012-08-14
    相关资源
    最近更新 更多