Отказ исполнителя
Отказ исполнителя — это ситуация, когда исполнитель не может выполнить данную команду в своём текущем состоянии. После отказа выполнение алгоритма прекращается, если в условии не предусмотрена специальная обработка такой ситуации.
Как распознать отказ
Для каждой команды нужно проверить два вопроса: входит ли она в систему команд данного исполнителя и разрешено ли её выполнить в текущем состоянии. Даже известная исполнителю команда может привести к отказу, если нарушено условие её применения.
- Команда неизвестна исполнителю — это ошибка записи или выбор команды не из его системы команд.
- Команда известна, но сейчас невыполнима — это отказ исполнителя.
- Команда выполнима — исполнитель изменяет своё состояние и переходит к следующей команде.
У исполнителя Водолей есть команда «налей из первого сосуда во второй». Если первый сосуд пуст, переливать из него нечего, поэтому команда приводит к отказу. Если в первом сосуде есть вода, команда выполняется, пока не будет достигнуто ограничение по объёму или сосуд не опустеет. Подробнее о таком исполнителе — исполнителе Водолей.
Отказ — это свойство выполнения команды в конкретном состоянии, а не обязательно ошибка самого алгоритма. Алгоритм может содержать проверку условия и не выполнять опасную команду, если она сейчас невозможна. Например, перед командой можно проверить, что сосуд не пуст. Если же алгоритм не предусмотрел отказ и всё равно дал невыполнимую команду, выполнение остановится.
Исполнитель умеет выполнять команду «шаг вперёд», но находится у стены. Что произойдёт при выполнении команды?
Главное
- Отказ — невозможность выполнить известную команду в текущем состоянии исполнителя.
- После отказа выполнение алгоритма обычно прекращается.
- Чтобы избежать отказа, перед командой проверяют условие её применимости.