【发布时间】:2010-11-24 01:06:43
【问题描述】:
在下面的函数中,是什么让try: 提前退出?如果我将相同的代码放在def 块之外,它就可以正常工作。
tiles = ['095D', '094M']
in_file = 'in_file'
out_file = 'out_file'
expression = ''' "FIELDNAME" LIKE 'STUFF' '''
def foobar(in_file, out_file, expression):
print in_file, out_file, expression
try:
print 'this is trying'
#pretty print tile list, from http://stackoverflow.com/questions/2399112/python-print-delimited-list
tiles = ','.join(map(str,tiles))
print 'made it past tiles!'
print 'From %s \nselecting %s \ninto %s' % (in_file, tiles, out_file)
except:
print 'Made it to the except block!'
foobar(in_file, out_file, expression)
结果:
D:\> python xx-debug.py
in_file out_file "FIELDNAME" LIKE 'STUFF'
this is trying
Made it to the except block!
this is trying
made it past tiles!
From in_file
selecting 095D,094M
into out_file
【问题讨论】:
-
简单易行,初学者会做这样的事情。
-
@aaronasterling "Pokemon 异常处理 - 必须抓住它们!"
-
你不应该
except:而不指定例外。这也将捕获诸如 KeyboardInterrupt 之类的东西,这几乎不是您想要的。
标签: python