Varias excepciones en Python

Manav Narula 30 enero 2023
  1. Uso de comas y paréntesis para detectar múltiples excepciones
  2. Utilice la función suppress() para capturar múltiples excepciones
Varias excepciones en Python

En Programación, una excepción es una ocurrencia que perturba el flujo normal del programa. En Python, se representa como un error. Una excepción puede ser de diferentes tipos según su causa, como IndexError, KeyError y más.

Podemos usar el bloque try y except para tratar las excepciones. El bloque try contiene algún código que puede generar una excepción, y si se genera una excepción, podemos especificar el código alternativo en el bloque except.

Por ejemplo,

try:
    print(5 / 0)
except:
    print(5 / 1)

Producción :

5

El 5/0 genera una excepción para que ejecute el código en el bloque except.

Tenga en cuenta que es posible generar excepciones manualmente también utilizando la palabra clave raise.

También podemos lidiar con múltiples excepciones en Python. Sabemos que tenemos diferentes tipos de excepciones en Python, por lo que podemos tener múltiples declaraciones except para diferentes excepciones.

Por ejemplo,

try:
    raise ValueError()
except ValueError:
    print("Value Error")
except KeyError:
    print("Key Error")

Producción :

Value Error

También es posible capturar múltiples excepciones con una declaración except. Estos métodos se analizan a continuación.

Uso de comas y paréntesis para detectar múltiples excepciones

La primera forma de lograr esto es separando las excepciones con una coma y poniéndolas entre paréntesis. El siguiente código muestra cómo.

try:
    raise ValueError()
except (ValueError, KeyError):
    print("Error")

Producción :

Error

Si se encuentra alguna excepción a la mencionada entre paréntesis, se ejecuta el código de este bloque. También podemos asignar un nombre al objeto de excepción (también llamado objeto de error). e es el nombre más utilizado para el objeto de error. Por ejemplo,

try:
    raise ValueError()
except (ValueError, KeyError) as e:
    print("Error")

Producción :

Error

La palabra clave as crea el alias para el nombre del objeto. Debajo de Python 2.5 fue posible eliminar el uso de la palabra clave as simplemente separando el nombre del objeto de error usando una coma como se muestra a continuación.

try:
    raise ValueError()
except (ValueError, KeyError), e:
    print("Error")

Producción :

Error

Utilice la función suppress() para capturar múltiples excepciones

La biblioteca contextlib proporciona una función muy útil llamada suppress() que también se puede usar para manejar múltiples excepciones.

Esta función combina las instrucciones try, except y pass en una línea de código. Se usa con la instrucción with que también se usa en el manejo de excepciones y hace que el código sea más limpio y legible.

El siguiente código muestra cómo utilizar esta función.

from contextlib import suppress

with suppress(FileNotFoundError):
    os.remove("somefile.tmp")

El código anterior es equivalente al siguiente programa con declaraciones try, except y pass.

try:
    os.remove("somefile.tmp")
except FileNotFoundError:
    pass

La sentencia pass se usa cuando no queremos ejecutar nada más que evitar cualquier error de código vacío.

Podemos usar la función suppress para múltiples excepciones como se muestra a continuación.

from contextlib import suppress

with suppress(FileNotFoundError, KeyError):
    os.remove("somefile.tmp")
Manav Narula avatar Manav Narula avatar

Manav is a IT Professional who has a lot of experience as a core developer in many live projects. He is an avid learner who enjoys learning new things and sharing his findings whenever possible.

LinkedIn

Artículo relacionado - Python Exception