抛出我有以下代码:检查异常在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