40 votes

Comment transmettre une variable à une exception lorsqu'elle est levée et la récupérer lorsqu'elle est exclue ?

En ce moment, j'ai juste une classe d'exception vierge. Je me demandais comment je pouvais lui donner une variable quand il est élevé et puis récupérer cette variable quand je la gère dans l'essai...sauf.

class ExampleException (Exception):
    pass

63voto

larsmans Points 167484

Donnez un argument à son constructeur, stockez-le comme un attribut, puis récupérez-le dans la clause except :

class FooException(Exception):
    def __init__(self, foo):
        self.foo = foo

try:
    raise FooException("Foo!")
except FooException as e:
    print e.foo

-1voto

S.Lott Points 207588

Tu peux le faire.

try:
    ex = ExampleException()
    ex.my_variable= "some value"
    raise ex
except ExampleException, e:
    print( e.my_variable )

Ça marche bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X