На ДРАКОНе (шутка)
На самом деле, важная ситуация, я её всегда студентам объясняю - с разными способами решения.
Я практикую флаг ok:
ok := Cond1;
IF ok THEN
...
ok := Cond2
END;
IF ok THEN
...
ok := Cond3
END
Тут легко чисто механически в хвост или в середину дотыкать этапы...
Можно вместо ок иметь целую переменную, чтобы знать в конце номер этапа, где всё обломалось.
Также разбираю со студентами альтернативные способы, чтобы, по крайней мере, не дублировать ELSE:
ok := FALSE;
IF Cond1 THEN
...
IF CondN THEN
ok := TRUE
END
END
(когда присутствует в коде какое-то изменение состояния, влияющее на дальнейшее выполнение программы - например, здесь ok := FALSE и ok := TRUE, или смена состояния конечного автомата, я жирным выделяю это обычно)
Ну или классика, котрую сам не очень люблю, но студентам показываю: оформить каждый этап отдельной функцией (вложенной, видимо) и записать:
IF Stage1() & Stage2() & Stage3() ...
или ok := Stage1() & Stage2() & Stage3()