2011-07-08 9 views
12

今は空の例外クラスがあります。私はtry ... exceptでそれを処理するときに、変数を上げてから変数を取得するときに変数を与える方法を私は考えていました。変数を例外に渡して例外を渡し、例外を取り除いたときにそれを取得する方法はありますか?

class ExampleException (Exception): 
    pass 
+3

'__init__'はあなたの友人です。 –

+1

[いい例](http://stackoverflow.com/a/1319675/201665)デフォルトのメッセージ動作を維持したい場合 –

答えて

21

、そのコンストラクタ属性として、その後、except句でそれを取得することを店に引数を与える:

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

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

あなたがこれを行うことができます。

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

正常に動作します。

+0

この作業では、このようなオブジェクト属性を設定するのは一般的には良い習慣ではありません。 '__init__'の中でこれを行うという、受け入れられた答え方が良いです。 –

関連する問題