Пишу на C прошивку для микроконтроллера. Возникла следующая проблема:
while (1) {
..
for (..) {
..
if (..) {
вдруг неожиданно произошло что-то очень не хорошее, например, аппаратная ошибка несовместимая с нормальной работой программы, нужно выйти из цикла while (1)
}
..
}
..
switch (..) {
case ..:
if (..) такая же ситуация...
break;
..
}
..
}
..
if (флаг если ошибка) {
обработка
}
..
И как тут быть? Неужели goto, и будет мне вагон счастья? А как же «напишешь «goto» и за тобой придёт бабай! Буууу!» (c), Дейкстра и весь такой прочий антураж?