私は次の(簡略化された)方法を持っています:
public bool DoWorkWithRetry()
{
for (int remainingTries = Constants.MaxRetries; remainingTries >= 0; remainingTries--)
{
try
{
return DoWork();
}
catch (Exception ex)
{
if (remainingTries == 0)
{
throw new WorkException(
String.Format("Failed after {0} retries.", Constants.MaxRetries),
ex);
}
// fall through to retry
}
}
}
このメソッドが を返すかスローするかは明らかです。ただし、C# コンパイラは私に不平を言いnot all code paths return a value
ます。
- これは C# コンパイラのコード分析の制限ですか?
for
または、スローまたはリターンなしでループが完了できる場所が表示されないという条件がありますか?