sys.exit(), exit() și quit() în Python

Interpretorul (sys) Python 3.0+

Încheie programul, cu un cod de ieșire sau un mesaj de eroare.

Sintaxă
sys.exit(cod=None)

Ce face sys.exit(), exit() și quit()

sys.exit(cod) oprește programul. Codul 0 (sau None) înseamnă succes, orice alt număr înseamnă eroare, iar un text este afișat în stderr și produce codul 1. Shell-ul, cron sau alte programe citesc acest cod.

Tehnic, sys.exit aruncă excepția SystemExit, deci blocurile finally și with se închid corect, iar excepția poate fi prinsă. exit() și quit() sunt ajutoare pentru consola interactivă, adăugate de modulul site; în scripturi folosește sys.exit().

Parametri

Parametru Descriere
cod Opțional. Un întreg (codul de ieșire) sau un mesaj.

Ce returnează

Nu returnează; aruncă SystemExit.

Exemple

Exemplul 1: SystemExit poate fi prins

import sys
for cod in [0, 2, "Fișierul de configurare lipsește"]:
    try:
        sys.exit(cod)
    except SystemExit as e:
        print("SystemExit cu codul", repr(e.code))
try:
    exit(5)
except SystemExit as e:
    print("exit():", e.code, type(quit).__name__)

Rezultat

SystemExit cu codul 0
SystemExit cu codul 2
SystemExit cu codul 'Fișierul de configurare lipsește'
exit(): 5 Quitter

Exemplul 2: Cod de ieșire într-un script

import sys
from pathlib import Path
if not Path("config.ini").exists():
    sys.exit("Eroare: config.ini lipsește")
print("Pornesc...")

Rezultat (în terminal, apoi echo $?)

Eroare: config.ini lipsește
1

Greșeli frecvente

  • Prinzi excepțiile cu except BaseException sau except: gol și oprești fără să vrei și sys.exit().

Comenzi înrudite

  • sys.argv: Lista argumentelor primite de script din linia de comandă.
  • os.abort(): Oprește imediat procesul cu semnalul SIGABRT, fără curățenie.
  • try / except / else / finally: Prinde și tratează erorile (excepțiile), ca programul să nu se oprească brusc.