>>355
その方式は一般的に書けばこうなる。
こんなの見たくないよ。

void func()
{
  if (step1()) {
    if (step2()) {
      if (step3()) {
        return SUCCESS;
      } else {
        step3_recovery();
        step2_recovery();
        step1_recovery();
      }
    } else {
      step2_recovery();
      step1_recovery();
    }
  } else {
    step1_recovery();
  }
  return FAILED;
}