Python 防止错误消息?

Python 防止错误消息?,python,sqlite,Python,Sqlite,我正在检查SQLite中的字段是否有客户预订id-如果有,它将返回行,等等。但是如果没有,我会得到以下错误 TypeError: 'NoneType' object has no attribute '__getitem__' 我知道这意味着什么,什么都没有,等等。 但是我想知道是否有办法防止错误,而是在那里放一条消息?如果你知道如何处理错误,你总能捕捉到错误: try: do_something_that_raises_error() except TypeError: prin

我正在检查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:

而您的
本身是
None
。您可以发布您的代码吗?

一旦发现错误,您还可以引发自定义错误,而不是打印:

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)

我明白你的意思,但这不是我想要的:)我想要它,所以,如果没有与id相等的行,它将打印一条自定义错误消息,而不是关于获取对象的自动错误消息。嘿,谢谢你的快速回复-我尝试过使用它,但它仍然给出错误?有预付款吗?:)除非你把try/except放在错误的代码段周围,否则我看不出这是怎么可能的。@CharlieSay:除非你向我们展示尝试它的代码以及你得到的错误和回溯,否则这不是有用的信息。如果您完全编写了这段代码,那么在这一点上肯定不会出现
TypeError
。您可能会在此处遇到不同的错误,或者您可能会从
try
之外的其他代码中得到
TypeError
,但是如果没有看到您的代码,我们无法告诉您原因。@abarnert print“|您想看看第[1]行的座位吗?”choice=raw_input(| Y/N:)如果选项='Y':请尝试:cur.execute(“从CustID=(?),(CustID,))所在的座位中选择*)rowseat=cur.fetchone()打印“|已预订座位:”,rowseat[0]打印“|-----------------------------------------------”除了TypeError:print(“数据库没有正确的信息”)系统退出(1)@CharlieSay:对
TypeError
的回溯说明了什么?例如,它可以很容易地从尝试打印
行[1]
的第一行
print
开始。(此外,阅读评论中的代码几乎是不可能的。请尝试将其发布到类似的地方,然后在此处发布链接。)