Hvordan å se feil i Python

Hvordan å se feil i Python


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 å implementere metoder som viser informasjon om innholdet i disse feilene for debugging formål. Med den riktige koden, vil feil i et gitt Python program vises gjennom standard feil utskriftsmetode, mens utløser et unntak vekkende blokk med kode. Denne metoden vil gi programmereren til begge loggfeilmeldinger og diktere hvordan programmet håndterer den spesielle feil.

Bruksanvisning

Catching og Logging Feil i Python

1 Ta denne lille delen av python kode som et eksempel:

! / 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 Interaktiv Interpreter, vil denne feilen ut til skjermen og programmet vil krasje. Imidlertid kan programmereren utvikle et GUI program for å kjøre utenfor tolk som vil logge seg og håndtere slike feil i koden.

2 Legg en "prøve ... unntatt" blokken rundt eksempelkode. Dette vil diktere hvordan programmet håndterer feil under gjennomføring:

! / Usr / local / bin / python

import sys

prøve:

x = 4 - 4

y = y / x

print y

bortsett ZeroDivisionError:

/*code to handle exception goes here*/

Koden vil nå "prøve" de som er angitt i "prøve ... unntatt" blokken. Den "unntatt" seksjonen aktiveres kun hvis 'ZeroDivisionError' hendelse inntreffer. Hvis det oppstår andre feil, den "unntatt" blokken vil ikke kjøre. Det er imidlertid mulig å sette opp flere feilhåndtering trinn med flere "unntatt" uttalelser.

3 Route feilmeldingen gjennom en utgang Filestream objekt. I dette tilfellet bør feil gå gjennom standard feil utgang (standardfeil) stream.

! / Usr / local / bin / python

import sys

prøve:

x = 4 - 4

y = y / x

print y

bortsett ZeroDivisionError:

elog = open('out.log', 'w')

sys.stderr = elog

heve Unntak, "divisjon med null"

Den "elog" variabel er tildelt en åpen fil. Deretter blir standard feil utgang (sys.stderr) knyttet til filen tildelt elog. Enhver utgang sendt til sys.stderr vil skrive til "out.log" fil. Endelig er et unntak "oppdratt", forteller programmet at det har oppstått en feil, 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).

Hint

  • Det er flere måter å logge feil i Python utover håndlaget kode. Sjekk ut Python språkspesifikasjonen for informasjon om "pdb" debugging modul, samt innebygget logging funksjoner i Python bibliotekene.