SORU
4 HAZİRAN 2011, CUMARTESİ


Günlük Python özel durum yakalanmamış

Nasıl stderr logging modülü ile çıkış yerine yakalanmamış istisna neden?

Bunu yapmak için en iyi yol olacağını fark ettim:

try:
    raise Exception, 'Throwing a boring exception'
except Exception, e:
    logging.exception(e)

Ama benim durum olurdugerçekten güzellogging.exception(...) bir özel durum yakalandı değil zaman otomatik olarak çağrılır.

CEVAP
4 HAZİRAN 2011, CUMARTESİ


Ned belirttiği gibi, sys.excepthook Her zaman çağrılan bir özel durum oluşturuldu ve yakalanmamış. Bunun pratik anlamı kodunuzu isterseniz sys.excepthook varsayılan davranış (logging.exception kullanma da dahil olmak üzere) geçersiz kılabilirsiniz.

Saman adam bir örnek olarak:

>>> import sys
>>> def foo(exctype, value, tb):
...     print 'My Error Information'
...     print 'Type:', exctype
...     print 'Value:', value
...     print 'Traceback:', tb
... 

sys.excepthook geçersiz kılma:

>>> sys.excepthook = foo

Açık sözdizimi hatası (kolon terk etmek ve özel hata bilgileri geri almak:

>>> def bar(a, b)
My Error Information
Type: <type 'exceptions.SyntaxError'>
Value: invalid syntax (<stdin>, line 1)
Traceback: None

sys.excepthookhakkında daha fazla bilgi için: http://docs.python.org/library/sys.html#sys.excepthook

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Benjamin Heckendorn

    Benjamin Hec

    4 Mayıs 2008
  • LiteralMSPaint

    LiteralMSPai

    27 EKİM 2010
  • whiteboy7thst

    whiteboy7ths

    1 Temmuz 2009