En este tutorial, aprenderá sobre los diferentes tipos de errores y excepciones que están integrados en Python. Se generan cada vez que el intérprete de Python encuentra errores.
Video: Manejo de excepciones de Python
Podemos cometer ciertos errores al escribir un programa que conducen a errores cuando intentamos ejecutarlo. Un programa de Python termina tan pronto como encuentra un error no controlado. Estos errores se pueden clasificar ampliamente en dos clases:
- Errores de sintaxis
- Errores lógicos (excepciones)
Errores de sintaxis de Python
El error causado por no seguir la estructura (sintaxis) adecuada del lenguaje se denomina error de sintaxis o error de análisis .
Veamos un ejemplo:
>>> if a < 3 File "", line 1 if a < 3 SyntaxError: invalid syntax
Como se muestra en el ejemplo, una flecha indica dónde se encontró el analizador con el error de sintaxis.
Podemos notar aquí que :
faltan dos puntos en la if
declaración.
Errores lógicos de Python (excepciones)
Los errores que ocurren en tiempo de ejecución (después de pasar la prueba de sintaxis) se denominan excepciones o errores lógicos .
Por ejemplo, ocurren cuando intentamos abrir un archivo (para leer) que no existe ( FileNotFoundError
), intentamos dividir un número por cero ( ZeroDivisionError
) o intentamos importar un módulo que no existe ( ImportError
).
Siempre que se producen estos tipos de errores en tiempo de ejecución, Python crea un objeto de excepción. Si no se maneja correctamente, imprime un rastreo de ese error junto con algunos detalles sobre por qué ocurrió ese error.
Veamos cómo Python trata estos errores:
>>> 1 / 0 Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in ZeroDivisionError: division by zero >>> open("imaginary.txt") Traceback (most recent call last): File "", line 301, in runcode File "", line 1, in FileNotFoundError: (Errno 2) No such file or directory: 'imaginary.txt'
Excepciones integradas de Python
Las operaciones ilegales pueden generar excepciones. Hay muchas excepciones integradas en Python que se generan cuando ocurren los errores correspondientes. Podemos ver todas las excepciones integradas usando la local()
función integrada de la siguiente manera:
print(dir(locals()('__builtins__')))
locals()('__builtins__')
devolverá un módulo de excepciones, funciones y atributos integrados. dir
nos permite listar estos atributos como cadenas.
Algunas de las excepciones integradas comunes en la programación de Python junto con el error que las causa se enumeran a continuación:
Excepción | Causa del error |
---|---|
AssertionError | Criado cuando assert falla una declaración. |
AttributeError | Se genera cuando falla la asignación o referencia de atributo. |
EOFError | Se genera cuando la input() función alcanza la condición de final de archivo. |
FloatingPointError | Se genera cuando falla una operación de coma flotante. |
GeneratorExit | Aumento cuando close() se llama al método de un generador . |
ImportError | Se genera cuando no se encuentra el módulo importado. |
IndexError | Se aumenta cuando el índice de una secuencia está fuera de rango. |
KeyError | Se genera cuando no se encuentra una clave en un diccionario. |
KeyboardInterrupt | Se genera cuando el usuario pulsa la tecla de interrupción ( Ctrl+C o Delete ). |
MemoryError | Se genera cuando una operación se queda sin memoria. |
NameError | Se genera cuando una variable no se encuentra en el ámbito local o global. |
NotImplementedError | Criado por métodos abstractos. |
OSError | Se genera cuando el funcionamiento del sistema provoca un error relacionado con el sistema. |
OverflowError | Se genera cuando el resultado de una operación aritmética es demasiado grande para ser representado. |
ReferenceError | Se genera cuando se usa un proxy de referencia débil para acceder a un referente recolectado de basura. |
RuntimeError | Se genera cuando un error no se incluye en ninguna otra categoría. |
StopIteration | Generado por next() función para indicar que el iterador no debe devolver más elementos. |
SyntaxError | Lo genera el analizador cuando se encuentra un error de sintaxis. |
IndentationError | Se eleva cuando hay una sangría incorrecta. |
TabError | Aumenta cuando la sangría consiste en tabulaciones y espacios inconsistentes. |
SystemError | Se genera cuando el intérprete detecta un error interno. |
SystemExit | Criado por sys.exit() función. |
TypeError | Se genera cuando se aplica una función u operación a un objeto de tipo incorrecto. |
UnboundLocalError | Se genera cuando se hace una referencia a una variable local en una función o método, pero no se ha vinculado ningún valor a esa variable. |
UnicodeError | Se genera cuando se produce un error de codificación o decodificación relacionado con Unicode. |
UnicodeEncodeError | Se genera cuando se produce un error relacionado con Unicode durante la codificación. |
UnicodeDecodeError | Se genera cuando se produce un error relacionado con Unicode durante la decodificación. |
UnicodeTranslateError | Se genera cuando se produce un error relacionado con Unicode durante la traducción. |
ValueError | Se genera cuando una función obtiene un argumento de tipo correcto pero valor incorrecto. |
ZeroDivisionError | Se genera cuando el segundo operando de división o operación de módulo es cero. |
Si es necesario, también podemos definir nuestras propias excepciones en Python. Para obtener más información sobre ellos, visite Excepciones definidas por el usuario de Python.
Podemos manejar estas excepciones incorporados y definidos por el usuario en Python utilizando try
, except
y finally
declaraciones. Para obtener más información sobre ellos, visite Python try, except y.