0
我對python相當陌生並試圖處理一個允許我顯示導致失敗的兩點的錯誤。一個變量在函數內,另一個變量在函數外。我嘗試下面的代碼: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()
將引發該錯誤的行部分引發錯誤,但它不知道文件名。
感謝您的幫助!
但功能沒有訪問變量y。我希望能夠讓用戶知道導致錯誤的y和z的值。除非我誤解。 – John
您可以重寫您的示例以更像您的生產代碼嗎?現在'try/except'行*可以*訪問'y'變量。即使'fun()'是一個單獨的函數,它只會引發'Exception'。 'try/except'是代碼運行,捕獲並報告'fun()'引發的錯誤。 –
好的,謝謝。我發現我很困惑。你100%正確。我沒有意識到你實際編輯了代碼並完全回答了我的問題。在except行中我需要Exception。這是我無法弄清楚的。謝謝! – John