Python

2010-06-07 8 views
8

'da neden "try" başarısız olduğunu gösterme, "try" in neden başarısız olduğunu ve tüm hataları olabildiğince el ile yazmadan ve program bitmeden "hariç" olarak atlandığını göstermek için nasıl bir yol var?Python

örnek: i if:print error 1, elif: print error 2, elif: etc... yapmak istemiyorum

try: 
    1/0 
except: 
    someway to show 
    "Traceback (most recent call last): 
     File "<pyshell#0>", line 1, in <module> 
     1/0 
    ZeroDivisionError: integer division or modulo by zero" 

. i try orada olmasaydı gösterilmiştir olacağını hatayı görmek istiyorum

+1

Yarı OT:

import traceback import sys try: print 1/0 except Exception: s = traceback.format_exc() serr = "there were errors:\n%s\n" % (s) sys.stderr.write(serr) 

Çıktı hattı hakkında bilgi gösterecektir istisna oluştu kaynağıdır spesifik olmayan ' except' cümleleri neredeyse her zaman kötü bir fikirdir. Her zaman hangi İstisnaları yakalamayı planlamanız gerektiğini belirtmelisiniz, bu yüzden beklenmedik bir İstisna, bir “KeyboardInterruptException” söz konusu olduğunda yanlışlıkla bir şeyleri karıştırmazsınız. –

cevap

10

Dene:

>>> try: 
...  1/0 
... except Exception, e: 
... print e 
... 
integer division or modulo by zero 

diğer sözdizimsel varyantlar örneğin vardır:

fazla bilgi bulunabilir

>>> try: 
...  1/0 
... except Exception as e: 
... print e 
... 
integer division or modulo by zero 
errors tutorial. Sık sık yapın veya standart hataya göstermek için böyle durum oturum için traceback kullanmak

+1

vay. Gerçekten başarısızım. Teşekkürler! – calccrypto

+0

İstisnai yeniden yükseltmek isterseniz (örn. Duruş yürütme, vb.), 'E' ya da sadece 'yükselt' komutunu kullanın. – detly

7

:

there were errors: 
Traceback (most recent call last): 
    File "c:\test\ex.py", line 5, in <module> 
    print 1/0 
ZeroDivisionError: integer division or modulo by zero 
+2

http://www.python.org/dev/peps/pep-0008/ adresinden: "İstisnaları yakalarken, mümkün olduğunca belirli bir istisna dışında" çıplak "ifadesini kullanın:" yan tümce "[...] Çıplak dışında: 'yan tümcesi SystemExit ve KeyboardInterrupt özel durumları yakalar, Control-C ile bir programı kesmeyi zorlaştırır ve diğer sorunları gizleyebilir.Program hatalarını işaret eden tüm özel durumları yakalamak istiyorsanız,' Exception: 'seçeneğini kullanın. – Walter

+0

Tamam. 'Exception' dışında 'except' eklendi. –