自分の場合だとCならgoto様の出番だな。C++だとRAIIで行くけどな。
 if(!init1())goto ERR0;
 if(!init2())goto ERR1;
 if(!init3())goto ERR2;
 execute();
 done3();
ERR2:
 done2();
ERR1:
 done1();
ERR0:;