问题 1 - 实用
我在我的 C# 应用程序中使用System.Diagnostics.Process
. 如下所示:
Process process = new Process();
// ... StartInfo initialization here
int timelimit_ms = 30000;
process.Start();
if (!process.WaitForExit(timelimit_ms))
{
// What exception to throw here?
throw new Excpetion(
"An executing method exceeded the time limit of " + timelimit_ms.ToString() + "ms");
}
我目前正在投掷System.ComponentModel.Win32Exception
. 但我不确定这是否是最佳选择。子进程是一个简单的命令行实用程序。那么第一个问题,在这种情况下要抛出什么异常?
问题 2 - 理论上的
这不是我第一次问自己要抛出什么异常。而且我不知道如何选择某个人的简单指南。C# 中有很多例外,从一个命名空间深深地继承到另一个命名空间。第二个问题,如何决定在特定情况下抛出什么异常?