我对python很新,并尝试处理一个错误,允许我显示导致失败的两个点。一个变量在函数内,另一个变量在函数外。我的尝试是以下代码:
def fun(x):
z = 0.5 * x
if z == 1.0:
return z
else:
raise Exception('z is not 1.0')
if __name__ == '__main__':
y = 9.0
x = y / 4.0
try:
print fun(x)
except fun as err:
print 'y is %f' % y
print err
所以,如果y = 8.0
,那么x = 2.0
和z = 1.0
就好了。但是,如果y = 9.0
然后z != 10
,我希望显示错误和y
的值。 y
无法访问fun()
,因此我可以在那里完成。
我意识到这是一个毫无意义的例子。实际上,我将一行数据从文件传递到fun()
,并且我希望fun()
抛出错误,该行的哪一部分会导致错误,但它不会导致错误。知道文件名。
感谢您的帮助!
答案 0 :(得分:0)
使用您的外部try/except
来抓住并回复Exception
内的预期fun()
。
你基本上拥有它,只需要将except fun as err:
更改为except Exception as err:
def fun(x):
z = 0.5 * x
if z == 1.0:
return z
else:
raise Exception('z is not 1.0')
if __name__ == '__main__':
y = 9.0
x = y / 4.0
try:
print fun(x)
except Exception as err:
print 'y is %f' % y
print err