質問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#には非常に多くの例外があり、ある名前空間から別の名前空間に深く継承されています。2番目の質問、特定の状況でスローする例外を決定する方法は?