Varias excepciones en Python
- Uso de comas y paréntesis para detectar múltiples excepciones
-
Utilice la función
suppress()
para capturar múltiples excepciones
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 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