c# - Process.HasExited 抛出 InvalidOperationException 的原因是什么?

标签 c# .net process invalidoperationexception

我看到 System.Diagnostics.Process.HasExited 方法抛出 InvalidOperationException,但消息文本属性对于抛出它的原因并不是很有用。在什么情况下会抛出此异常?

最佳答案

我看到了同样的消息。如果您这样做,可能会发生这种情况:

System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "trash filename here.exe";
try
{
    proc.Start();
}
catch { }//proc should fail.
try
{
    if (proc.HasExited)
    {
        //....
    }
}
catch (System.InvalidOperationException e)
{
    //cry and weep about it here.
}

如果上面的 proc.Start() 失败,您也应该哭泣。因此,如果您在 proc.Start() 之后捕获,请务必在 proc.HasExited(以及许多其他 System.Diagnostics.Process 方法。

关于c# - Process.HasExited 抛出 InvalidOperationException 的原因是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2603296/

相关文章:

c# - 如何将巨大的字节数组保存到azure表存储中?

c# - 嵌套的 if 语句混淆了 Razor

c# - 什么是 TimeZoneInfo.ConvertTime 更快的替代方案?

c++ - 从进程中删除 PROCESS_TERMINATE 访问权限,由 CreateProcessWithLogonW 创建

c# - 使用 PerformanceCounter 获取进程的 CPU 使用率

objective-c - 设置断点,调用时为: return and continue

C# 替换除两种情况之外的所有内容

c# - System.DateTime.Now 在 C# 中返回什么?

.net - CLR之间的差异

c# - 使用 `dotnet new` 在 C# 中创建 Windows 窗体应用程序