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 BaseExceptionsauexcept:gol și oprești fără să vrei șisys.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.