Керемет шығу - Graceful exit

A әдемі шығу[1] (немесе әсем өңдеу) қарапайым бағдарламалау идиомасы[дәйексөз қажет ] онда а бағдарлама ауыр затты анықтайды қате жағдай және нәтижесінде «әдемілікпен шығады» бақыланатын тәртіпте. Көбінесе бағдарлама сипаттамалықты басып шығарады қате туралы хабарлама а Терминал немесе журнал әсем шығу бөлігі ретінде.

Әдетте, керемет шығу коды балама болған кезде болады - бұл қатені анықтауға жол бермейді және өңделмеген - жалған қателіктер тудыруы немесе кейінірек аномальды мінез-құлық жасауы мүмкін, бұл қиынға соғуы мүмкін бағдарламашы дейін түзету. Керемет шығумен байланысты код жабу сияқты қосымша қадамдарды қабылдауы мүмкін файлдар, бағдарламаның деректерді дәйекті, қалпына келтірілетін күйде қалдыруын қамтамасыз ету.

Әдемі шығу әрдайым қажет емес. Көптеген жағдайларда, тікелей апат бағдарламалық жасақтама жасаушыға түзеткішті қосуға немесе маңызды ақпаратты жинауға мүмкіндік бере алады, мысалы негізгі қоқыс немесе стек ізі, қатенің негізгі себебін анықтау үшін.

Формалды қолдайтын тілде ерекше жағдайларды өңдеу, әсем шығу ерекшелікті өңдеудегі соңғы қадам болуы мүмкін. Басқа тілдерде әсем шығулар мүмкін болатын қателер орналасқан жерлерде қосымша мәлімдемелермен жүзеге асырылуы мүмкін.

«Керемет шығу» деген тіркесті жұмыстан немесе өмірдегі қарым-қатынастан босатуды білдіретін жалпылама тұжырым жасалды.[2][3]

Перлде

Ішінде Перл бағдарламалау тілі, әсем шығулар негізінен өлу оператор. Мысалы, файлды ашуға арналған код келесідей оқылады:

# Жазу үшін 'қателіктер' файлын ашыңыз немесе тиісті қате туралы хабармен өліңіз.ашық НӘТИЖЕ, '>', 'қателіктер' немесе өлу «'myresults' файлына жаза алмайды: $!»;

Егер файлды ашу әрекеті болса қателіктер орындалмаса, онда бағдарлама қате туралы хабарламамен аяқталады және шығу күйі нормадан тыс тоқтатуды көрсететін.

Java-да

Ішінде Java бағдарламалау тілі көріңіз ... ұстаңыз блок аулау үшін жиі қолданылады ерекшеліктер. Барлық ықтимал қауіпті кодтар блоктың ішіне орналастырылады және егер ерекше жағдай орын алса, тоқтатылады немесе ұсталады.

тырысу {    // «file.txt» файлын оқып көріңіз    Сканер sc = жаңа Сканер(жаңа Файл(«file.txt»));    уақыт (sc.hasNextLine())        Жүйе.шығу.println(sc.readLine());    sc.жабық();} аулау(IOException e) {    // Файлды оқу мүмкін болмады    Жүйе.қате.println(«Файлды оқу мүмкін болмады. Stack trace:»);    e.printStackTrace();}

С

Жылы C біреуін қолдануға болады қате (3) функциясында көрсетілген GNU бойынша GNU C кітапханасы.

int фд;егер ((фд = ашық(«/ dev / urandom», O_RDONLY)) < 0) қате(1, қате, «Ашылмады»);

Егер бірінші параметр нөлге тең болмаса, онда бұл функция ата-аналық процесстен шығады және сол параметрді қайтарады.

Сондай-ақ қараңыз

Әдебиеттер тізімі

  1. ^ «әсем шығу». Тегін сөздік. Алынған 25 қыркүйек, 2016.
  2. ^ Эллен Гудман. «Эллен Гудманның дәйексөзі:« «әдемі шығу» үшін айла бар. Бұл ..."". Goodreads. «Керемет шығу» үшін айла бар. Бұл жұмыс, өмір кезеңі немесе қарым-қатынас аяқталғанын білу және оны жіберу туралы аяннан басталады. Бұл біздің өміріміз үшін өткенді немесе оның маңыздылығын жоққа шығармай кетуді білдіреді. Бұл болашақ сезімін, әрбір шығу сызығы кіреберіс, біз алға емес, алға жылжуға деген сенімділікті білдіреді.
  3. ^ Сью Шелленбаргер (18 тамыз, 2015). «Өзіңіздің жұмысыңызды қалай әдемі қалдыруға болады». The Wall Street Journal. Керемет шығу қызметкердің беделін түсіріп, құнды қатынастарды нығайта алады. Жаман екеуіне де үлкен зиян тигізуі мүмкін.