December 21
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.
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).