2011-07-08 35 views
12

Şu anda boş bir istisna sınıfım var. Büyüdüğünde bir değişkene nasıl verebileceğimi merak ettim ve sonra denediğimde bu değişkeni geri almamı istedim. Bunu yapabilecekBir istisna, istisna yapıldığında yükseltilip alındığında nasıl istisna geçirilir?

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

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

'__init__' sizin arkadaşınız. Varsayılan mesaj davranışını korumak istiyorsanız, –

+1

[Güzel örnek] (http://stackoverflow.com/a/1319675/201665). –

cevap

21

onun yapıcı bir niteliği olarak, daha sonra except fıkrada geri almak bir argümanı, mağaza verin.

İyi çalışıyor.

0

:

class ExampleException (Exception): 
    pass 
+0

Bu çalışma olmasına rağmen, bu gibi nesne özelliklerini ayarlamak genellikle iyi bir uygulama değildir. Bunu __init__'de yapmanın kabul edilen cevap yaklaşımı daha iyidir. –