Trots en programmerare bästa ansträngningar , kan varje program möter enstaka fel från gång till gång . I de flesta fall är det viktigt att implementera metoder som visar information om arten av dessa fel för felsökning . Med rätt kod , kommer fel i ett givet Python -program visar via standard felutsignal metod , samtidigt utlöser ett undantag som fångar kodblock . Denna metod gör det möjligt för programmerare att både meddelanden loggfel och diktera hur programmet hanterar visst fel . Saker du behöver
Python tolken
Textredigeraren
Visa fler instruktioner
fånga och loggning fel i Python
1
Ta denna lilla del av python ! kod som ett exempel :
# /usr /local /bin /python
import sys
x = 4 - 4
y = y /x
print y
Denna kodsträng , när den exekveras , kommer att orsaka ett allvarligt fel ( kallas ZeroDivisionError i Python ) eftersom heltal inte kan delas med noll . Även i Python Interactive Interpreter , kommer detta fel ut på skärmen och programmet kommer att krascha . Däremot kan programmeraren utveckla ett GUI program att köra utanför tolken som kommer att logga och hantera sådana fel i koden .
2
Lägg en " prova ... utom " kvarter runt exempelkod . Detta kommer att diktera hur programmet hanterar fel vid :
# /usr /local /bin /python
import sys
prova :
x = 4 - 4
y = y /x
print y
utom ZeroDivisionError :
/* kod för att hantera undantag går här * /
koden kommer nu " prova " de åtgärder som anges i " prova ... utom " blocket . Den " utom " sektionen aktiveras endast om ' ZeroDivisionError "händelse inträffar . Om något annat fel uppstår , det " undantag " blocket inte kommer att utföra . Det är dock möjligt att ställa in flera Felhanteringselement steg med multipel " utom " uttalanden . Addera 3
Route felmeddelandet genom en utgående FileStream-objektet . I detta fall bör felen går igenom standard error utgång ( stderr ) ström
# /usr /local /bin /python
import sys
prova : . !
x = 4 - 4
y = y /x
print y
utom ZeroDivisionError :
elog = open ( ' ut . log ' , ' w ' ) katalog
sys.stderr = elog
raise Exception , " division med noll "
" elog " variabel tilldelas en öppen fil . Därefter medelfelet utgång ( sys.stderr ) kopplat till filen tilldelats elog . Varje utgång skickas till sys.stderr skriver till " out.log " filen . Slutligen ett undantag " höjs ", säger programmet att ett fel har uppstått och det är dags att sätta stopp . Strängen " division med noll " kommer ut till out.log ( eftersom undantaget kommer att skriva ut direkt till sys.stderr ) .