我想提出一个检查,看看阉SQLite中的字段有顾客预订ID - 如果这样做,将返回该行,等等等等。但是,如果他们不我得到以下错误防止错误消息?
TypeError: 'NoneType' object has no attribute '__getitem__'
我知道这意味着什么,什么都没有。 但我想知道如果有一种方法来防止错误,而是把消息放在那里?
我想提出一个检查,看看阉SQLite中的字段有顾客预订ID - 如果这样做,将返回该行,等等等等。但是,如果他们不我得到以下错误防止错误消息?
TypeError: 'NoneType' object has no attribute '__getitem__'
我知道这意味着什么,什么都没有。 但我想知道如果有一种方法来防止错误,而是把消息放在那里?
您可以随时捕获的错误,如果你知道如何处理它:
try:
do_something_that_raises_error()
except TypeError:
print("database doesn't have correct info")
sys.exit(1)
看起来你正在做的事情是这样的:
if row['customer_booking_id'] is not None:
,而你的row
是None
本身。你可以发布你的代码吗?
我明白了你的观点,但这不是我想要的:)我希望如此,如果没有等于id的行就会打印自定义错误消息,不是关于获取物体的自动化程序。 – OcelotcR 2013-02-18 20:29:53
一旦你发现你也可以提出一个自定义错误,而不是印刷错误:
try:
do_something_that_raises_error()
except TypeError:
raise MyCustomError("My Custom Message")
这里是一个示例自定义错误定义:
class MyCustomError(Exception):
def __init__(self, msg):
Exception.__init__(self,msg)
self.message = msg
def __str__(self):
return repr(self.message)
嘿,感谢迅速答复 - 我尝试使用这个,但它仍然给错误?任何进展? :) – OcelotcR 2013-02-18 20:30:11
我不明白这是怎么可能的,除非你把try/except放在一段错误的代码中。 – mgilson 2013-02-18 20:31:16
@CharlieSay:除非您向我们展示尝试它的代码以及您得到的错误和追溯,否则这些信息没有用。如果你编写了这个代码,那么你当然不会在这个时候得到一个'TypeError'。你可能会在这里得到一个_different_错误,或者你可能从'try'之外的其他代码中得到'TypeError',但是没有看到你的代码,我们不能告诉你为什么。 – abarnert 2013-02-18 20:31:56