2016-10-16 41 views
0

我想知道是否有關於python except「所有」的關鍵字。我碰到這個看似簡單的問題:抓住任何東西,並將其保存到變量

try: 
    #do stuff 
except any as error: 
    print('error: {err}'.format(err=error)) 

我知道,你可以做except:捕獲所有的錯誤,但我不知道如何添加一個as關鍵字,以得到print能夠對象。我想捕捉任何錯誤,並能夠獲得用於打印或其他東西的對象。

+1

你可以做一個裸體'除了:',但這被認爲是一個不好的做法。 – martineau

回答

12

你能趕上幾乎所有的東西是這樣的:

try: 
    #do stuff 
except Exception as error: 
    print('error: {err}'.format(err=error)) 

但趕上真是應有盡有,你可以這樣做:

import sys 

try: 
    #do stuff 
except: 
    err_type, error, traceback = sys.exc_info() 
    print('error: {err}'.format(err=error)) 
+1

謝謝,第二個例子會怎麼樣,但不是第一個呢? – jath03

+3

@JackHughes'SystemExit','StopIteration'等;那些並非真正錯誤的東西,你真的不想趕上(至少在沒有立即重新提高的情況下)。 – chepner

+0

@chepner嗯好的 – jath03

2

是的,正好趕上Exception

except Exception as ex:

相關問題