私は次のパターンを持っています:
private void MyFunction()
{
doStuff();
if (problem())
{
cleanup();
return;
}
doMoreStuff();
if (otherProblem())
{
cleanup();
return;
}
doYetMoreStuff();
}
エラー クリーンアップ コードが重複しています。これを排除する明白な方法は次のとおりです。
private void MyFunction()
{
try {
doStuff();
if (problem()) throw new MyException();
doMoreStuff();
if (otherProblem()) throw new MyException();
doYetMoreStuff();
}
catch (MyException)
{
cleanup();
return;
}
}
ただし、エラー ケースは実際には例外的なものではありません。これは ASP.Net ページであり、クエリ文字列にデータが含まれていない場合やデータがない場合にエラー ケースが発生します。例外は、エラー処理を重複排除してメイン コードから分離する最も明白な方法のようですが、私が理解しているように、受け入れられているベスト プラクティスは、このような制御フローに例外を使用しないことです。
これを行う慣習的な方法は何ですか?