如何防止'NoneType'对象抛出错误

时间:2013-12-17 12:31:42

标签: python

我正在使用谷歌某些人编写的图书馆与他们的Apps服务进行互动。由于某种原因,代码不能完全正常工作,我最终得到以下错误

TypeError: 'NoneType' object has no attribute '__getitem__'

AttributeError: 'NoneType' object has no attribute 'text'

因此我确实使用了一个包装函数来检查该元素是否具有一个名为text的属性。

这是他们写的功能。

def safeElementText(element):
  if hasattr(element, 'text'):
     return element.text
  return ''

我不是Python的真正专家,但对我来说,似乎元素已经作为NoneType到达。但是,我没有机会更改他们的代码,所以我通过这种方式修改代码

def safeElementText(element):
  if element is None:
    return 'ssss'
  if hasattr(element, '__getitem__'):
     return 'aaa'
  if hasattr(element, 'text'):
     return element.text
  return ''

我本可以解决问题。不是这种情况。这是否意味着根本无法拦截NoneType?

0 个答案:

没有答案