Код выхода из программы

Свойство определяет коды выхода,которые программа может вернуть.

Constructors

указывает на успешное завершение;

указывает на сбой программы с кодом выхода.Точная интерпретация кода зависит от операционной системы.В частности,некоторые значения могут быть запрещены (например,0 на POSIX-совместимой системе).

Instances

Подробности

EqExitCode
Конкретные детали

Methods

Methods

Methods

Methods

Связанные типы

Methods

Methods

exitWith code throws ExitCode code . Normally this terminates the program, returning code to the program’s caller. —> Исчисление exitWith code бросает ExitCode code . Обычно это завершает программу, возвращая code вызывающей программе.

Handle s stdout and stderr are flushed automatically; any other buffered Handle s need to be flushed manually, otherwise the buffered data will be discarded. —> По окончанию программы, стандартный Handle сек stdout и stderr сбрасываются автоматически; любые другие буферизованные Handle необходимо очищать вручную, иначе буферизованные данные будут отброшены.

Я знаю то,что ничего не знаю / КОДЫ выхода с программы заболевания АСТМЫ #Навейя

exitFailure . A program that terminates successfully without calling exitWith explicitly is treated as if it had called exitWith ExitSuccess . —> Программа, которая терпит неудачу каким-либо другим образом, рассматривается как если бы она вызвала exitFailure . Программа, которая успешно завершается без явного вызова exitWith , обрабатывается так, как если бы она вызвала exitWith ExitSuccess .

ExitCode is not an IOError , exitWith bypasses the error handling in the IO monad and cannot be intercepted by catch from the Prelude. However it is a SomeException , and can be caught using the functions of Control.Exception. This means that cleanup computations added with bracket (from Control.Exception) are also executed properly on exitWith . —> В качестве ExitCode не является IOError , exitWith обходит обработку в ошибке IO монада и не может быть перехвачено catch из Prelude . Однако это SomeException , и его можно перехватить с помощью функций Control.Exception . Это означает, что вычисления очистки, добавленные с помощью bracket (из Control.Exception ), также выполняются правильно при exitWith .

Читайте также:
Функции памяти обработка программ

exitWith should be called from the main program thread in order to exit the process. When called from another thread, exitWith will throw an ExitException as normal, but the exception will not cause the process itself to exit. —> Note: in GHC, exitWith should be called from the main program thread in order to exit the process. When called from another thread, exitWith will throw an ExitException as normal, but the exception will not cause the process itself to exit.

exitFailure is equivalent to exitWith ( ExitFailure exitfail ) , where exitfail is implementation-dependent. —> Вычисление exitFailure эквивалентно exitWith ( ExitFailure exitfail ) , где exitfail зависит от реализации.

Хочешь ВЫЙТИ ИЗ СИСТЕМЫ ? 12 простых ШАГОВ чтобы выйти из МАТРИЦЫ изменить МИР и улучшить СВОЮ ЖИЗНЬ

exitSuccess is equivalent to exitWith ExitSuccess , It terminates the program successfully. —> Вычисление exitSuccess эквивалентно exitWith ExitSuccess , оно успешно завершает программу.

stderr and terminate with exitFailure . —> Запишите данное сообщение об ошибке в stderr и завершите с помощью exitFailure .

Источник: runebook.dev

Как выйти из скрипта Perl?

Beginner Perl Maven tutorial

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

Однако в некоторых случаях может понадобиться остановить выполнение раньше.

Например, вы спрашиваете пользователя о его возрасте, и если он младше 13, останавливаете скрипт.

use strict; use warnings; use 5.010; print «Каков ваш возраст? «; my $age = ; if ($age < 13) < print «Вы слишком молодыn»; exit; >print «Сделаем что-то. n»;

Обычный вызов exit .

Код выхода

Если вы пользуетесь командной оболочкой Unix/Linux, то вы, должно быть, знаете, что каждая программа при выходе передает код выхода, который можно узнать из переменной $? . Вы тоже можете передать такой код выхода из perl-скрипта, указав параметр при вызове exit() .

use strict; use warnings; use 5.010; exit 42;

Читайте также:
Программа восстановление данных планшет

В этом примере мы установили код выхода 42. (По умолчанию устанавливается 0)

Успех или отказ?

В Perl обычно 0 или undef означает отказ, а какое-нибудь истинное значение означает успех.

В мире командной оболочки Unix/Linux, 0 означает успех, а другие числа означают отказ. Как правило, для каждого приложения существует свой набор значений, каждое из которых означает какую-то ошибку.

Проверка кода выхода в Linux

На Unix/Linux обычно запускают скрипт через perl script.pl , и потом можно проверить код выхода через echo $? .

Проверка кода выхода в Perl

Если вам приходится запускать один скрипт perl из другого, например через вызов функции system, код выхода этой «другой программы» попадет в переменную Perl’а $? .

Если вы сохраните код из примера выше в файл script.pl, и создадите другой файл «executor.pl» с таким кодом:

use strict; use warnings; use 5.010; say system «perl script.pl»; say $?; say $? >> 8;

То вывод будет таким:

10752 10752 42

Вызов system вернет код выхода, и он же будет записан в переменную Perl’а $? . Здесь важно упомянуть, что это значение состоит из двух байт, и собственно код выхода записан в верхнем байте. Так что, чтобы получить наше 42, нужно сдвинуть биты полученной переменной вправо на 8, использовав побитовый оператор >> . Это мы и видим в последней строке примера.

Vladimir Zatoloka

Переводчик
Vladimir Zatoloka

Gabor Szabo

If you have any comments or questions, feel free to post them on the source of this page in GitHub. Source on GitHub. Comment on this post

Источник: ru.perlmaven.com

Код выхода из программы

← →
SerVS — S ( 2002-04-05 16:43 ) [0]

Если кто знает подскажите как реализовать сабж. В с++ достаточно сделать в WinMain нечто вроде return 5, а что нужно сделать в Дельфи я не могу понять. Если кто знает, плиз помогите

← →
Song ( 2002-04-05 16:53 ) [1]

var ExitCode: Integer = 0;

The ExitCode variable contains the application»s exit code. An exit procedure can learn the cause of termination by examining ExitCode. If the program terminates normally, ExitCode is zero. If the program terminates due to a call to Halt, ExitCode contains the value passed to Halt. If the program terminates due to a run-time error, ExitCode contains the error code.

Читайте также:
Лучшая программа для чистки андроида от мусора на русском

Setting the ExitCode variable to a value other than 0 in the initialization section of a unit will make loading of a DLL fail (DllMain will return False). You can also set ExitCode in code called from DllProc or DllProcEx to signal failure of loading.

← →
SerVS — S ( 2002-04-05 17:20 ) [2]

Спасибо огромное. В момент запуска происходит очень много инициализаций, если произошла ошибка то нужно завершить приложение с соответствующим кодом (планируется в 95% случаев запускать его из другой проги). Делать halt нельзя, поэтому я использовал PostMessage. Song если в вас есть лучшие идеи подскажите, пожалуйста.

← →
Song ( 2002-04-05 17:44 ) [3]

Это что рассматривать как «момент запуска». Если Вы имеете ввиду до того, как выполнится Application.Run т.е. например onCreate форм, то PostMessage не получится т.к. фактически обработчик сообщений для Вашего приложения не работает, и программа закроется только после Run. В этом случае только Halt (только корректно выгрузите все возможно созданные объекты) или Application.Terminate. А если «момент запуска» это что-то наподобие onShow или onActivate то можно послать сообщение WM_CLOSE или WM_QUIT.
В принципе, я уверен, ничего нового я Вам не посоветовал. :))

← →
SerVS — S ( 2002-04-05 17:58 ) [4]

Правильно «момент запуска» это onCreate на главной форме. Если сделать halt то проложение его просто игнорирует и остается подвисщим в памяти (видимых форм нет). А если после WM_CLOSE с помощь PostMessage винда ставит его в очередь и, действительно, передает его приложению после Run. (Главное оно не остается висеть в памяти). Я не совсем уверен ExitCode после завершения по WM_QUIT будет ноль, или то что я туда установлю?

Источник: delphimaster.net

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru