Til tross for en programmerer beste innsats, kan hvilket som helst program møter en og annen feil fra tid til annen. I de fleste tilfeller er det viktig å gjennomføre metoder som inneholder informasjon om den natur av disse feilene Til feilsøking . Med riktig kode , vil feil i en gitt Python programmet vise gjennom standard feil utgang metoden, mens utløser et unntak -fanger blokk med kode . Denne metoden vil tillate programmereren å både logge feilmeldinger og diktere hvordan programmet håndterer den aktuelle feilen. Du trenger
Python tolk
Text Editor
Vis flere instruksjoner
Catching og Logging feil i Python
en
Ta denne lille delen av python ! koden som et eksempel : en
# /usr /local /bin /python
import sys
x = 4 - 4
y = y /x
print y
Denne kodebiten , når henrettet , vil føre til en fatal feil (kalt en ZeroDivisionError i Python ) fordi heltall ikke kan deles med null. Mens i Python Interactive tolk , vil denne feilen ut på skjermen og programmet vil krasje . Imidlertid kan programmereren utvikle et GUI program til å kjøre utenfor tolk som vil logge og håndtere slike feil i koden .
2
Legg til en " prøve ... bortsett fra " block rundt eksempelet koden . Dette vil diktere hvordan programmet håndterer feilen under kjøring : en
# /usr /local /bin /python
import sys
prøve !
x = 4 - 4
y = y /x
print y
unntatt ZeroDivisionError : en
/* kode for å håndtere unntak går her * /
koden vil nå " prøve" de som er angitt i " prøve ... bortsett fra " block . Den " unntatt" seksjonen vil bare aktiveres hvis den " ZeroDivisionError ' hendelse inntreffer. Hvis det oppstår andre feil , er " unntatt" blokk vil ikke kjøre . Det er imidlertid mulig å sette opp flere feil - håndtering trinn med flere " unntatt" uttalelser.
3
Route feilmeldingen gjennom en utgang FileStream objekt . I dette tilfellet skal feil går gjennom standard feil utgang ( stderr ) stream
# /usr /local /bin /python
import sys
prøve : . !
x = 4 - 4
y = y /x
print y
unntatt ZeroDivisionError : en
elog = open (' ut . log ',' w ' )
sys.stderr = elog
raise Unntak , " divisjon med null "
" elog " variabel er tildelt en åpen fil . Deretter blir standarden feilutput ( sys.stderr ) som er koblet til den fil som er tilordnet elog . Noen utgang sendes til sys.stderr vil skrive til " out.log " filen . Til slutt er det unntak " hevet, " forteller programmet at en feil har oppstått, og det er på tide å stoppe . Strengen " divisjon med null " vil skrive ut til out.log (fordi unntaket vil skrive ut direkte til sys.stderr ) .