拋出我有以下代碼:檢查異常在try..catch..finally代碼
class Test:
def __init__(self, d):
try:
self.row_number = 1
self.name = d['name']
self.address = d['address']
self.__err_flag = 0
except Exception, ex:
self.__err_flag = 1
finally:
self.val = ex.message if self.__err_flag else None
的self.__err_flag
的唯一目的是檢查是否異常被抓住了。我顯然不能有這樣的條件:self.val = ex.message if ex else None
。
有沒有更好的方法來檢查在finally塊中是否有異常被捕獲?此外,當我以下:
t = Test({'name': 'kitty-katty'})
dir(t) // print _Test__err_flag
有沒有一種方法來隱藏類的屬性,這樣做dir()
時,他們不露面?
您的「如何檢查是否拋出異常?」和「我如何隱藏屬性?」問題似乎是無關的。請在單獨的帖子中提問。 – Kevin 2014-11-20 19:16:06
我不認爲你可以隱藏任何'dir'。 Python沒有明確的私有字段。 – simonzack 2014-11-20 19:16:31