Изящный выход - Graceful exit

А изящный выход[1] (или же изящная обработка) простой идиома программирования[нужна цитата ] при этом программа обнаруживает серьезный ошибка состояние и в результате "выходит изящно" контролируемым образом. Часто программа печатает описательный сообщение об ошибке к Терминал или же бревно как часть изящного выхода.

Обычно код для изящного выхода существует, когда есть альтернатива - позволяющая избежать обнаружения ошибки и необработанный - приведет к ложным ошибкам или последующему аномальному поведению, которое будет более трудным для программист к отлаживать. Код, связанный с плавным выходом, может также выполнять дополнительные действия, например закрытие файлы, чтобы гарантировать, что программа оставляет данные в согласованном состоянии с возможностью восстановления.

Изящные выходы не всегда желательны. Во многих случаях прямое крушение может дать разработчику программного обеспечения возможность подключить отладчик или собрать важную информацию, такую ​​как дамп ядра или же трассировки стека, чтобы диагностировать основную причину ошибки.

На языке, поддерживающем формальный Обработка исключений, постепенный выход может быть последним шагом в обработке исключения. В других языках изящные выходы могут быть реализованы с помощью дополнительных операторов в местах возможных ошибок.

Фраза «изящный уход» также была обобщена для обозначения прекращения работы или отношений в жизни, которые закончились.[2][3]

В Perl

в Perl язык программирования, плавные выходы обычно реализуются через умереть оператор. Например, код для открытия файла часто выглядит следующим образом:

# Откройте файл myresults для записи или умрите с соответствующим сообщением об ошибке.открыто ПОЛУЧЕННЫЕ РЕЗУЛЬТАТЫ, '>', "мои результаты" или же умереть "невозможно записать в файл myresults: $!";

Если попытка открыть файл мои результаты сбой, содержащая программа завершится с сообщением об ошибке и статус выхода указывает на ненормальное завершение.

В Java

в Ява язык программирования, попробуй поймать блок часто используется для ловли исключения. Весь потенциально опасный код помещается внутри блока и в случае возникновения исключения останавливается или перехватывается.

пытаться {    // Пытаемся прочитать файл "file.txt"    Сканер sc = новый Сканер(новый Файл("file.txt"));    пока (sc.hasNextLine())        Система.из.println(sc.readLine());    sc.Закрыть();} ловить(IOException е) {    // Не удалось прочитать файл    Система.ошибаться.println("Не удалось прочитать файл. Трассировка стека:");    е.printStackTrace();}

В C

В C можно использовать ошибка (3) функция, предусмотренная в GNU посредством Библиотека GNU C.

int fd;если ((fd = открыто("/ dev / urandom", O_RDONLY)) < 0) ошибка(1, errno, "Не удалось открыть");

Если первый параметр не равен нулю, эта функция выйдет из родительского процесса и вернет этот параметр.

Смотрите также

Рекомендации

  1. ^ "изящный выход". Бесплатный словарь. Получено 25 сентября, 2016.
  2. ^ Эллен Гудман. Цитата Эллен Гудман: «Есть уловка в« изящном выходе ». Это началось ..."". Goodreads. Есть уловка с «изящным выходом». Он начинается с видения, позволяющего распознать, когда работа, жизненный этап или отношения закончились - и отпустить. Это означает оставить то, что закончилось, не отрицая его действительности или его прошлой важности для нашей жизни. Это включает в себя чувство будущего, веру в то, что каждая линия выхода - это вход, что мы движемся вверх, а не уходим.
  3. ^ Сью Шелленбаргер (18 августа 2015 г.). «Как изящно бросить работу». Журнал "Уолл Стрит. Изящный уход может улучшить репутацию сотрудника и укрепить ценные отношения. Плохой может нанести серьезный ущерб обоим.