🔴 Exit code
Повернемось до теми Корисні речі, які варто знати про процес
Код завершення процесу (exit code, return code) — це числове значення, яке процес повертає операційній системі після свого завершення.
Воно показує, як саме процес завершився:
0️⃣ 0 — успішне виконання без помилок;
1️⃣ Будь-яке ненульове значення, вказує на помилку або особливу причину завершення, залежно від програми.
Код завершення використовується іншими процесами, скриптами чи системами автоматизації (наприклад, bash, make, systemd) для визначення, чи потрібно вважати виконання команди успішним або повторити/обробити помилку.
У Linux перевірити exit code останньої команди можна через змінну $?.
У Windows щоб отримати код завершення останньої команди, використовують змінну %ERRORLEVEL%.
Для прикладу розглянемо код
import sys
def main() -> int:
if len(sys.argv) != 3:
print("Usage: python script.py <num1> <num2>", file=sys.stderr)
return 1
try:
a = float(sys.argv[1])
b = float(sys.argv[2])
print(a / b)
return 0
except ValueError:
print("Error: arguments must be numbers", file=sys.stderr)
return 2
except ZeroDivisionError:
print("Error: division by zero", file=sys.stderr)
return 3
if __name__ == "__main__":
sys.exit(main())
sys.exit() задає код завершення процесу, для помилок ми використали значення 1,2,3
Запустимо наш код у командному рядку:
Linux
python3 main.py 1 0
echo $?
Windows
python main.py 1 0
echo %ERRORLEVEL%
Команда echo виведе нам код з яким завершився процес.
Так як відбувається ділення на 0 — код завершення буде 3.
Інший процес або скрипт може легко дізнатись код завершення і прийняти відповідне рішення.
❤1👍1
502 ·