exit
v1.1.0
os . Exit ( exit . Forbidden ) // The user isn't permitted to perform this action
os . Exit ( exit . Unavailable ) // An API this program consumes isn't available
use semantic_exit :: { exit , Code } ;
exit ( Code :: Forbidden ) ;
exit ( Code :: Unavailable ) ;
import exit
exit . Code . Forbidden . exit ()
exit . Code . Unavailable . exit ()
Смотрите полный список кодов выхода.
Традиционно, выход из программы с нулевым знаком указывает на успех, в то время как Nonzer указывает на неудачу.
os . Exit ( 0 ) // success
os . Exit ( 1 ) // failure
Но exit
System Call принимает значения от 0 до 255, оставляя 254 различных способа выражения сбоя.
Цели этой библиотеки - определить коды выхода:
Он определяет коды в двух безоговорочных диапазонах: 80-99 для ошибок пользователей и 100-119 для программных или системных ошибок.
Код выхода | Имя | Значение |
---|---|---|
0 | OK | Программа успешно вышла. |
1 | NotOK | Программа вышла безуспешно, но не дает никакого дополнительного контекста относительно того, какова была неудача. |
80 | UsageError | Программа вышла безуспешно, потому что она использовалась неправильно. (Например, необходимый аргумент был опущен или неверное значение было предоставлено для флага.) |
81 | UnknownSubcommand | Программа вышла безуспешно, потому что был вызван непризнанный подкоманду. (Используется CLI Multi-Tools.) |
82 | RequirementNotMet | Программа вышла безуспешно, потому что ее предпосылка не была выполнена. |
83 | Forbidden | Программа вышла безуспешно, потому что пользователь не разрешается выполнять запрошенное действие. |
84 | MovedPermanently | Программа вышла безуспешно, потому что она была перенесена в новое место. |
100 | InternalError | Программа безуспешно вышла из -за проблемы в своем собственном коде. (Используется вместо 1, когда проблема, как известно, связана с кодом или зависимостями программы.) |
101 | Unavailable | Программа вышла безуспешно, потому что услуга, которой она зависит, была недоступна. (Например, локальный демон или удаленная служба не отвечали, соединение было неожиданно закрыто, служба HTTP ответила 503.) |
Ctrl
C
, вы отправляете его Signal SIGINT
- значение которого 2 - и программа выходит с 130.)sysexits.h
изначально были определены для sendmail
, но с тех пор использовались много мест. (Сравните коды семантического выхода с кодами sysexits.h)