【发布时间】: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