tipos - try except python example
¿Cómo obtener el nombre de la excepción atrapada en Python? (2)
¿Cómo puedo obtener el nombre de una excepción que se planteó en Python?
p.ej,
try:
foo = bar
except Exception as exception:
name_of_exception = ???
assert name_of_exception == ''NameError''
print "Failed with exception [%s]" % name_of_exception
Por ejemplo, estoy detectando varias (o todas) excepciones, y quiero imprimir el nombre de la excepción en un mensaje de error.
Aquí hay dos maneras diferentes de obtener el nombre de la excepción:
-
type(exception).__name__
-
exception.__class__.__name__
p.ej,
try:
foo = bar
except Exception as exception:
assert type(exception).__name__ == ''NameError''
assert exception.__class__.__name__ == ''NameError''
Esto funciona, pero parece que debe haber una manera más fácil, más directa?
try:
foo = bar
except Exception as exception:
assert repr(exception) == ''''''NameError("name ''bar'' is not defined",)''''''
name = repr(exception).split(''('')[0]
assert name == ''NameError''