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