Python Language Interpreter
Editor de texto
Ver Más instrucciones
captura y registro de errores en Python
1
Tome esta pequeña sección de python código de ejemplo :
# /usr /local /bin /python
import sys
x = 4 - 4
y = y /x
impresión y
Este fragmento de código , cuando se ejecuta, provocará un error grave (llamado ZeroDivisionError en Python ), porque los enteros no se pueden dividir por cero. Mientras que en el intérprete interactivo de Python , este error se imprimirá en la pantalla y el programa se bloqueará. Sin embargo , el programador puede desarrollar un programa de interfaz gráfica de usuario para ejecutar fuera del intérprete que registrar y manejar este tipo de errores en el código .
2
Añadir un "try ... except " bloque de todo el código de ejemplo . Esto determinará cómo el programa controla el error durante la ejecución :
# /usr /local /bin /python
import sys
tratar :
x = 4 - 4
y = y /x
impresión y
excepto ZeroDivisionError :
/* Código para manejar excepción va aquí * /
el código ahora " probar" las operaciones especificadas en el "try ... except " bloque. La " excepción " sección se activará sólo si se produce el evento ' ZeroDivisionError ' . Si se produce cualquier otro error, la " excepción " bloque no se ejecutará . Es posible, sin embargo , la creación de varios pasos de tratamiento de errores con múltiples " excepto" declaraciones.
3
pasar el mensaje de error a través de un objeto de secuencia de archivo de salida. En este caso , los errores deben pasar por la salida de error estándar ( stderr ) corriente
# /usr /local /bin /python
import sys
probar: . !
x = 4 - 4
y = y /x
impresión y
excepto ZeroDivisionError :
elog = open ( 'que . log ' , ' w ' )
sys.stderr = elog
aumento de excepción , "División por cero"
La variable " elog " se asigna un archivo abierto. Entonces , la salida de error estándar ( sys.stderr ) está vinculado al archivo asignado a elog . Cualquier señal que se envía a sys.stderr escribirá en el fichero " out.log " . Por último , se hace una excepción " levantó ", dice el programa que se ha producido un error y es el momento de detenerse. La cadena " división por cero " se imprimirá en out.log (porque la excepción se imprimirá directamente a sys.stderr ) .