2011-05-23 8 views
74

En Python, ¿es posible tener múltiples declaraciones except para una declaración try? Por ejemplo:Python: One Try Multiple Except

try: 
#something1 
#something2 
except ExceptionType1: 
#return xyz 
except ExceptionType2: 
#return abc 
+0

Presumiblemente something1 es una clase de excepción en la línea 'except something1'? –

+1

@Sentinel - Muy bien. Disculpa si abusé de SO comunidad. – Eva611

+3

@ Eva611: No se disculpe. (1) pruébalo (2) publique una respuesta a su pregunta. –

Respuesta

149

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/errors.html

El "como" palabra clave se utiliza para asignar el error a una variable de manera que el error puede ser investigada más a fondo más adelante en el código. También tenga en cuenta que los paréntesis para el caso de excepción triple son necesarios en Python 3. Esta página tiene más información: Catch multiple exceptions in one line (except block)

+28

Si desea hacer lo mismo en ambos casos, es 'excepto (SomeError, OtherError):'. No responde la pregunta de OP, pero podría ayudar a algunas personas que llegan aquí a través de Google. – Mark

+3

@Mark: buen punto, ejemplo agregado de eso. – vartec

+0

Si, por ejemplo, tiene que convertir varias versiones de una estructura de datos a una nueva estructura, al actualizar versiones de código, por ejemplo, puede anidar try..excepts. –

Cuestiones relacionadas