2016-10-16 45 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:

相关问题