Jump to content

Изящный выход

Изящный выход [1] (или изящное обращение ) — это простая идиома программирования. [ нужна ссылка ] при этом программа обнаруживает серьезную ошибку и в результате «корректно завершает работу» контролируемым образом. Часто программа выводит описательное сообщение об ошибке на терминал или в журнал как часть корректного выхода.

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

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

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

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

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

# Open the file 'myresults' for writing, or die with an appropriate error message.
open RESULTS, '>', 'myresults' or die "can't write to 'myresults' file: $!";

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

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

try {
    // Try to read the file "file.txt"
    Scanner sc = new Scanner(new File("file.txt"));
    while (sc.hasNextLine())
        System.out.println(sc.readLine());
    sc.close();
} catch(IOException e) {
    // The file could not be read
    System.err.println("The file could not be read. Stack trace:");
    e.printStackTrace();
}

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

int fd;
if ((fd = open("/dev/urandom", O_RDONLY)) < 0) error(1, errno, "Open failed");

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

См. также

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


Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: fd06af502a529fe22a8126ae4d71d979__1622327160
URL1:https://arc.ask3.ru/arc/aa/fd/79/fd06af502a529fe22a8126ae4d71d979.html
Заголовок, (Title) документа по адресу, URL1:
Graceful exit - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)