En Python, un rastreo es un informe que contiene las llamadas a funciones realizadas en su código en un punto específico, es decir, cuando obtiene un error, se recomienda que lo rastree hacia atrás (rastreo). Cada vez que el código obtiene una excepción, el rastreo brindará la información sobre lo que salió mal en el código. El rastreo de Python contiene información excelente que puede ayudarlo a encontrar lo que está fallando en el código. Estos rastreos pueden parecer un poco aburridos, pero una vez que los desglosas para ver qué está tratando de mostrarte, pueden ser muy útiles.
Considere el siguiente ejemplo…
# Python program to demonstrate # traceback mylist = [1, 2, 3] print(mylist[10])
En este ejemplo, estamos tratando de acceder al décimo elemento de la lista. Con solo 3 elementos presentes en la lista, dará un error de tiempo de ejecución. Cuando se ejecute este programa, obtendrá el siguiente rastreo.
Traceback (most recent call last): File "", line 2, in print(mylist[10]) IndexError: list index out of range
Este error de rastreo tiene toda la información sobre por qué ocurrió este error de tiempo de ejecución. La última línea del rastreo le informa qué tipo de error ocurrió junto con información relevante. Las líneas anteriores de rastreo apuntan al código en el que ocurrió el error. En el ejemplo anterior, la última línea indica que ocurrió el índice y las dos líneas anteriores muestran la ubicación exacta donde ocurrió la excepción. veamos ahora, cómo leer el rastreo..
Cómo leer el rastreo
El rastreo de Python contiene mucha información útil sobre qué excepción se genera. Revisar algunos rastreos línea por línea le dará una mejor comprensión de la información que contienen y lo ayudará a aprovecharlos al máximo. En esta sección, veremos cómo leer una excepción en particular.
En python, es mejor leer el rastreo de abajo hacia arriba .
- El CUADRO VERDE muestra qué tipo de error ocurrió.
- BLUE BOX muestra la información relevante sobre el error
- El CUADRO NARANJA muestra la declaración de rastreo para llamadas recientes, a continuación El primer error de tiempo de ejecución:
Rastreo (última llamada más reciente):
Archivo «», línea 1, en
ModuleNotFoundError: Ningún módulo llamado ‘asdf’ La línea de cada llamada contiene información como el nombre del archivo, número de línea y nombre del módulo - La parte ROJA subrayada muestra la línea exacta donde ocurrió la excepción.
Algunos de los errores comunes de rastreo son:
- Error de nombre
- IndexError
- Error de clave
- Error de tecleado
- valueError
- ImportError /ModuleNotFound
Repasemos cada error uno por uno:
- NameError: NameError ocurre cuando intenta hacer referencia a alguna variable que no se ha definido en el código.
Ejemplo:
number
=
1
# since no numb variable is
# defined it will give NameError.
print
(numb)
Producción:
Traceback (most recent call last): File "gfg.py", line 5, in print(numb) NameError: name 'numb' is not defined
- IndexError: se genera un IndexError cuando se hace referencia a una secuencia que está fuera de rango.
Ejemplo:
mylist
=
[
1
,
2
,
3
]
# Accessing the index out
# of range will raise IndexError
print
(mylist[
10
])
Producción:
Traceback (most recent call last): File "gfg.py", line 5, in print(mylist[10]) IndexError: list index out of range
- KeyError: similar a IndexError, KeyError se genera cuando intenta acceder a una clave que no está en el mapeo, generalmente en el caso de Python dict. Piense en esto como IndexError pero para diccionarios.
Ejemplo:
DICT
=
{
"a"
:
25
,
"b"
:
65
}
# A is not mapped in dict
# will raise KeyError
print
(
DICT
[
"A"
])
Producción:
Traceback (most recent call last): File "gfg.py", line 5, in print(DICT["A"]) KeyError: 'A'
- TypeError: TypeError se genera cuando se aplica una operación o función a un objeto de tipo inapropiado. Esta excepción devuelve una string que brinda detalles sobre la discrepancia de tipos.
Ejemplo:
c
=
'b'
+
3
print
(c)
Producción:
Traceback (most recent call last): File "gfg.py", line 1, in c = 'b'+3 TypeError: must be str, not int
- ValueError: se genera un ValueError cuando una operación o función integrada recibe un argumento que tiene el tipo correcto pero un valor no válido.
Ejemplo:
print
(
int
(
'xyz'
))
Traceback (most recent call last): File "gfg.py", line 1, in print(int('xyz')) ValueError: invalid literal for int() with base 10: 'xyz'
- ImportError: ImportError se genera cuando algo sale mal con una declaración de importación. Obtendrá esta excepción, o su subclase
ModuleNotFoundError
, si no se puede encontrar el módulo que está tratando de importar o si intenta importar algo de un módulo que no existe en el módulo.Ejemplo:
import
module_does_not_exist
Traceback (most recent call last): File "gfg.py", line 1, in import module_does_not_exist ModuleNotFoundError: No module named 'module_does_not_exist'
Publicación traducida automáticamente
Artículo escrito por dhanawade_rutuja y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA