English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Python (intérprete) lanza excepciones cuando encuentra errores. Por ejemplo: división por cero. En este artículo, aprenderá sobre los diferentes manejo de excepciones integrados en Python.
En la escritura del programa, a menudo nos encontramos con errores.
Los errores causados por no seguir la estructura correcta del lenguaje (sintaxis) se denominan errores de sintaxis o errores de análisis.
>>> if a < 3 Archivo "<input interactivo>", línea 1 if a < 3 ^ SyntaxError: sintaxis no válida
Aquí podemos notar que falta un dos puntos en la sentencia if.
Los errores también pueden ocurrir en tiempo de ejecución, estos se denominan excepciones. Por ejemplo, cuando intentamos abrir un archivo que no existe (FileNotFoundError), dividir un número por cero (ZeroDivisionError), no encontrar el módulo que intentamos importar (ImportError) y otros, se produce este tipo de situación.
Cada vez que ocurre este tipo de error en tiempo de ejecución, Python crea un objeto de excepción. Si no se maneja adecuadamente, se mostrará el rastro de error para este error, así como algunos detalles sobre la causa del error.
>>> 1 / 0 Traceback (llamada más reciente al final): Archivo "<cadena>", línea 301, en runcode Archivo "<input interactivo>", línea 1, en <módulo> ZeroDivisionError: división por cero >>> open("imaginary.txt") Traceback (llamada más reciente al final): Archivo "<cadena>", línea 301, en runcode Archivo "<input interactivo>", línea 1, en <módulo> FileNotFoundError: [Errno 2Error de archivo no encontrado: 'imaginary.txt'
Operaciones ilegales que pueden lanzar excepciones. Python tiene muchas excepciones integradas, que se lanzan cuando ocurren errores correspondientes. Podemos usar la función integrada local() para ver todas las excepciones integradas, como se muestra a continuación.
>>> locals()['__builtins__']
Esto nos devolverá el diccionario de excepciones, funciones y propiedades integradas.
A continuación se enumeran algunas de las excepciones integradas comunes en la programación Python y los errores que causan estas excepciones.
Excepción | Causa del error |
---|---|
AssertionError | Se lanza cuando falla una declaración assert. |
AttributeError | Se lanza cuando falla la asignación o la referencia de una propiedad. |
EOFError | Se lanza cuando la función input() alcanza la condición de final de archivo. |
FloatingPointError | Se lanza cuando falla una operación de coma flotante. |
GeneratorExit | Se lanza cuando se llama al método de generador en close(). |
ImportError | Se lanza cuando no se encuentra el módulo importado. |
IndexError | Se lanza cuando el índice de la secuencia está fuera de rango. |
KeyError | Se lanza cuando no se encuentra una clave en el diccionario. |
KeyboardInterrupt | Se lanza cuando el usuario presiona la tecla de interrupción (Ctrl) + Se lanza cuando se realiza una operación ilegal (como c o Delete). |
MemoryError | Se lanza cuando hay falta de memoria en la operación. |
NameError | Se lanza cuando no se encuentra una variable en el ámbito local o global. |
NotImplementedError | Método no implementado. |
OSError | Generada cuando una operación de sistema provoca un error relacionado con el sistema. |
OverflowError | Generada cuando el resultado de una operación aritmética es demasiado grande para poder representarlo. |
ReferenceError | Generada cuando se accede a un objeto de referencia colectada por el recolector de basura a través de un agente de referencia débil. |
RuntimeError | Generada cuando el error no pertenece a ninguna otra categoría. |
StopIteration | Generada por la función next(), para indicar que el iterador no tiene más elementos que devolver. |
SyntaxError | Generada por el analizador cuando se encuentra un error de sintaxis. |
IndentationError | Generada cuando la sangría es incorrecta. |
TabError | Generada cuando la sangría se compone de tabuladores e espacios inconsistentes. |
SystemError | Generada cuando el intérprete detecta un error interno. |
SystemExit | Generada por la función sys.exit(). |
TypeError | Generada cuando una función o operación se aplica a un objeto de tipo incorrecto. |
UnboundLocalError | Generada cuando se hace referencia a una variable local en una función o método sin que haya un valor asociado a esa variable. |
UnicodeError | Generada cuando ocurre un error de codificación o decodificación relacionado con Unicode. |
UnicodeEncodeError | Generada cuando ocurre un error relacionado con Unicode durante la codificación. |
UnicodeDecodeError | Generada cuando ocurre un error relacionado con Unicode durante la decodificación. |
UnicodeTranslateError | Generada cuando ocurre un error relacionado con Unicode durante el proceso de traducción. |
ValueError | Generada cuando una función recibe un parámetro de tipo correcto pero con valor incorrecto. |
ZeroDivisionError | Generada cuando el segundo operando de la división o el módulo es cero. |
También podemos definir nuestras propias excepciones en Python (si es necesario). Visite esta página para obtener información sobrede excepciones definidas por el usuarioMás información.
Podemos usar las sentencias try, except y finallyManejar estas excepciones integradas y definidas por el usuario en Python.