尽管有Except子句

时间:2015-12-19 21:56:49

标签: python django try-catch

我正在使用Python文档进行尝试/除以下工作:

def profile_check(self):
    try:
        profile = self.profile_type
        return profile
    except TypeError:
        ...

self.profile_type是Django模型中的一个字段,在这种情况下不存在(因此它返回为None)。但是,似乎缺少某些东西,因为它永远不会转移到except的操作,而是立即抛出TypeError异常:

>>> a.profile_check()
Traceback (most recent call last):
  File "<input>", line 1, in <module>
TypeError: 'NoneType' object is not callable

这是我第一次尝试使用try-catch,所以我知道这是基本的。

1 个答案:

答案 0 :(得分:2)

首先,您的问题是由于某种原因,profile_check设置为None。这就是为什么它在你打电话时给你的错误。

至于你的try / catch问题,如果一个变量不存在,那么Python解释器会抛出一个NameError。尝试用TypeError代替。

虽然没有上下文,但我无法帮助你解决profile_check-is-None问题。遗憾!