Es zinu par PHP komandu die()
, kas priekšlaicīgi aptur skriptu.
Kā to var izdarīt Python?
import sys
sys.exit()
informācija no [sys
moduļa dokumentācijas][izeja]:
sys.exit([arg])
Iziet no Python. Tas tiek īstenots, paceļot
SystemExit
izņēmumu, tāpēc tīrīšanas darbības, kas norādītas ar finally klauzulām no `try
izteikumiem tiek ievērotas, un ir iespējams pārtvert izteikumu izejas mēģinājumu ārējā līmenī.Neobligātais arguments arg var būt vesels skaitlis, kas norāda izejas statusu. (pēc noklusējuma nulle) vai cita veida objekts. Ja tas ir vesels skaitlis, nulle tiek uzskatīta par "veiksmīgu pabeigšanu", un jebkura nenulles vērtība ir nulle. tiek uzskatīta par "nenormālu izbeigšanu", ko izmanto čaulas un tamlīdzīgi. Lielākā daļa sistēmu pieprasa, lai tas būtu diapazonā no 0 līdz 127, un rada nedefinētus rezultātus. pretējā gadījumā. Dažās sistēmās ir konvencija par konkrētu nozīmes konkrētiem izejas kodiem, bet parasti tie ir tikai daži no šiem kodiem. nav pietiekami attīstītas; Unix programmās komandrindas sintaksei parasti izmanto 2. kļūdām un 1 - visām pārējām kļūdām. Ja cita veida objekts tiek nodots, None ir līdzvērtīgs nulles nodošanai, un jebkurš cits objekts ir tiek izdrukāts uz
stderr
, un tā rezultāts ir izejas kods 1. Jo īpaši,sys.exit("kāds kļūdas ziņojums")
ir ātrs veids, kā iziet no programmas, kad rodas kļūda.Tā kā `
exit()
galu galā "tikai" izraisa izņēmumu, tad tā beigs tikai procesu, ja tas tiek izsaukts no galvenā pavediena, un izņēmums netiek netiek pārtverts.
Ņemiet vērā, ka šis ir 'jaukais' veids, kā iziet no procesa. @glyphtwistedmatrix zemāk norāda, ka, ja vēlaties 'cieto izeju', varat izmantot os._exit(errorcode), lai gan tas, visticamāk, ir zināmā mērā atkarīgs no operētājsistēmas (piemēram, Windows sistēmā tas var nepieņemt kļūdas kodu), un tas noteikti ir mazāk draudzīgs, jo neļauj interpretētājam veikt tīrīšanu pirms procesa nāves.