Come Vedere Errori in Python

December 21

Come Vedere Errori in Python


Nonostante gli sforzi di un programmatore, ogni programma può incontrare l'errore occasionale di tanto in tanto. Nella maggior parte dei casi, è importante implementare metodi che visualizzano le informazioni per quanto riguarda la natura di questi errori a scopo di debug. Con il codice corretto, errori di un dato programma Python verranno visualizzati attraverso il metodo standard error, mentre innescando un blocco di eccezioni cattura di codice. Questo metodo permetterà al programmatore di entrambi i messaggi di errore del registro e dettare come il programma gestisce l'errore particolare.

istruzione

Errori cattura e registrazione in Python

1 Prendere questa piccola sezione di codice Python come un esempio:

! / Usr / local / bin / python

import sys

x = 4 - 4

y = y / x

stampa y

Questo frammento di codice, quando eseguito, causerà un errore fatale (chiamata ZeroDivisionError in Python), in quanto i numeri interi non possono essere divisi da zero. Mentre in Python Interpreter Interactive, questo errore verrà stampata allo schermo e il programma andrà in crash. Tuttavia, il programmatore può sviluppare un programma GUI per eseguire al di fuori interprete che log e gestire tali errori nel codice.

2 Aggiungere un "try ... except" blocco di tutto il codice di esempio. Questo detterà come il programma gestisce l'errore durante l'esecuzione:

! / Usr / local / bin / python

import sys

provare:

x = 4 - 4

y = y / x

stampa y

tranne ZeroDivisionError:

/*code to handle exception goes here*/

Il codice sarà ora "provare" le operazioni previste dal "try ... except" blocco. La sezione "eccezione" si attiverà solo se si verifica un evento del 'ZeroDivisionError'. Se si verifica qualsiasi altro errore, la "eccezione" blocco non sarà eseguito. E 'possibile, tuttavia, impostare più passaggi di gestione degli errori con più "eccezione" dichiarazioni.

3 Far passare il messaggio di errore attraverso un oggetto di output FileStream. In questo caso, gli errori devono passare attraverso il flusso standard di output di errore (stderr).

! / Usr / local / bin / python

import sys

provare:

x = 4 - 4

y = y / x

stampa y

tranne ZeroDivisionError:

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

sys.stderr = elog

sollevare eccezione "divisione per zero"

La variabile "elog" viene assegnato un file aperto. Poi, l'output di errore standard (sys.stderr) è collegato al file assegnato elog. Tutti i dati inviati a sys.stderr scriverà al file "out.log". Infine, un'eccezione viene "sollevata", dice il programma che si è verificato un errore ed è tempo di fermarsi. La stringa "divisione per zero" stamperà a out.log (perché l'eccezione stamperà direttamente a sys.stderr).

Consigli e avvertenze

  • Ci sono diversi modi per registrare gli errori in Python al di là del codice artigianale. Scopri le specifiche del linguaggio Python per informazioni sul modulo di debug "PDB", così come costruito in funzioni di registrazione nelle librerie Python.