我有以下模式:
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 页面,查询字符串中的错误数据或没有数据将触发错误情况。异常似乎是对错误处理进行重复数据删除并将其与主代码分开的最明显方法,但据我了解,公认的最佳实践是不要对这样的控制流使用异常。
这样做的习惯方法是什么?