Eva611
En Python, ¿es posible tener múltiples except
declaraciones para uno try
¿declaración? Como:
try:
#something1
#something2
except ExceptionType1:
#return xyz
except ExceptionType2:
#return abc
Para el caso de manejar múltiples excepciones de la misma manera, vea Capturar múltiples excepciones en una línea (excepto bloque)
vartec
Sí, es posible.
try:
...
except FirstException:
handle_first_one()
except SecondException:
handle_second_one()
except (ThirdException, FourthException, FifthException) as e:
handle_either_of_3rd_4th_or_5th()
except Exception:
handle_all_other_exceptions()
Ver: http://docs.python.org/tutorial/errores.html
La palabra clave “as” se usa para asignar el error a una variable para que el error pueda investigarse más a fondo más adelante en el código. También tenga en cuenta que los paréntesis para el caso de triple excepción son necesarios en python 3. Esta página tiene más información: Captura múltiples excepciones en una línea (excepto bloque)
-
Si quieres hacer lo mismo en ambos casos, es
except (SomeError, OtherError):
. No responde la pregunta OP, pero podría ayudar a algunas personas que llegan aquí a través de Google.– Marca
25 de septiembre de 2013 a las 14:43
-
Si, por ejemplo, tiene que convertir varias versiones de una estructura de datos en una nueva estructura, al actualizar versiones de código, por ejemplo, puede anidar las excepciones try..excepts.
– Rolf de Sajonia
04/12/2015 a las 14:00
-
Si desea manejar todas las excepciones, debe usar
except Exception:
en lugar de simpleexcept:
. (Simple, excepto que atrapará inclusoSystemExit
yKeyboardInterrupt
que normalmente no es lo que quieres)– polvoazul
6 de febrero de 2018 a las 19:08
-
Tal vez quieras hacer algo con
e
también ya que le das un nombre 🙂– Hola Adios
25 de marzo de 2020 a las 0:21
-
Si solo quiere evitar recibir un error sin manejar excepciones específicas, puede escribir niveles anidados de prueba/excepto como se menciona también en esta respuesta.
– Elías
13 de agosto de 2021 a las 10:53