Errores de Python y excepciones integradas

Podemos cometer ciertos errores al escribir un programa que conducen a errores cuando intentamos ejecutarlo. Un programa de python finaliza tan pronto como encuentra un error no controlado. Estos errores se pueden clasificar en general en dos clases:

  1. errores de sintaxis
  2. Errores lógicos (Excepciones)

Errores de sintaxis de Python

El error causado por no seguir la estructura adecuada (sintaxis) del lenguaje se llama error de sintaxis o error de sintáxis.

Veamos un ejemplo:

>>> if a < 3
  File "<interactive input>", line 1
    if a < 3
           ^
SyntaxError: invalid syntax

Como se muestra en el ejemplo, una flecha indica dónde el analizador encontró el error de sintaxis.

Podemos notar aquí que dos puntos : falta en el 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), trate de dividir un número por cero (ZeroDivisionError), o intente importar un módulo que no existe (ImportError).

Cada vez que ocurren estos tipos de errores de tiempo de ejecución, Python crea un objeto de excepción. Si no se maneja correctamente, imprime un seguimiento de ese error junto con algunos detalles sobre por qué ocurrió ese error.

Veamos cómo trata Python estos errores:

>>> 1 / 0
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
ZeroDivisionError: division by zero

>>> open("imaginary.txt")
Traceback (most recent call last):
 File "<string>", line 301, in runcode
 File "<interactive input>", line 1, in <module>
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 utilizando el local() funcionar de la siguiente manera:

print(dir(locals()['__builtins__']))

locals()['__builtins__'] devolverá un módulo de excepciones, funciones y atributos incorporados. 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ónCausa del error
AssertionErrorCriado cuando un assert la declaración falla.
AttributeErrorSe genera cuando falla la asignación de atributos o la referencia.
EOFErrorCriado cuando el input() la función llega a la condición de fin de archivo.
FloatingPointErrorSe genera cuando falla una operación de punto flotante.
GeneratorExitSubir cuando un generador close() se llama el método.
ImportErrorSe genera cuando no se encuentra el módulo importado.
IndexErrorSe genera cuando el índice de una secuencia está fuera de rango.
KeyErrorSe genera cuando una clave no se encuentra en un diccionario.
KeyboardInterruptSe genera cuando el usuario presiona la tecla de interrupción (Ctrl+C o Delete).
MemoryErrorSe genera cuando una operación se queda sin memoria.
NameErrorSe genera cuando una variable no se encuentra en el ámbito local o global.
NotImplementedErrorCriado por métodos abstractos.
OSErrorSe genera cuando el funcionamiento del sistema provoca un error relacionado con el sistema.
OverflowErrorSe genera cuando el resultado de una operación aritmética es demasiado grande para ser representado.
ReferenceErrorSe genera cuando se usa un proxy de referencia débil para acceder a un referente recolectado de elementos no utilizados.
RuntimeErrorSe genera cuando un error no pertenece a ninguna otra categoría.
StopIterationCriado por next() función para indicar que no hay más elementos para ser devueltos por el iterador.
SyntaxErrorProvocado por el analizador cuando se encuentra un error de sintaxis.
IndentationErrorSe levanta cuando hay una sangría incorrecta.
TabErrorSe genera cuando la sangría consiste en tabulaciones y espacios inconsistentes.
SystemErrorSe genera cuando el intérprete detecta un error interno.
SystemExitCriado por sys.exit() función.
TypeErrorSe genera cuando se aplica una función u operación a un objeto de tipo incorrecto.
UnboundLocalErrorSe genera cuando se hace referencia a una variable local en una función o método, pero no se ha vinculado ningún valor a esa variable.
UnicodeErrorSe genera cuando se produce un error de codificación o decodificación relacionado con Unicode.
UnicodeEncodeErrorSe genera cuando se produce un error relacionado con Unicode durante la codificación.
UnicodeDecodeErrorSe genera cuando se produce un error relacionado con Unicode durante la decodificación.
UnicodeTranslateErrorSe genera cuando se produce un error relacionado con Unicode durante la traducción.
ValueErrorSe genera cuando una función obtiene un argumento del tipo correcto pero un valor incorrecto.
ZeroDivisionErrorSe genera cuando el segundo operando de la operación de división o 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 integradas y definidas por el usuario en Python usando try, except y finally declaraciones. Para obtener más información sobre ellos, visite las sentencias Try, Except y finalmente de Python.

Publicaciones Similares

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *