如何在 Python 中处理错误并继续执行脚本?
假设我在Python中有这样的代码:
l = dict['link']
t = dict['title'] <<<<<<<<error here, there is no "title"
d = dict['description']
k = dict['keyword']
如果第二行出现错误,但我希望它继续运行这个脚本并给其他值赋值,我可以“忽略”这些错误吗?
补充说明:我知道怎么用简单的try和except来处理错误。但是,很多时候如果第二行出错,它就会跳到except那部分,然后不再继续执行后面的代码。
补充说明:我知道有一个“get”方法。不过,我想要一种通用的方法来处理这个问题……我并不总是会使用字典。
8 个回答
3
如果你想要一种处理异常(错误)并继续执行的方式(不过这可能不是个好主意),你可以使用一个包装函数,比如:
def consume_exception(func, args, exception):
try:
return func(*args)
except exception:
return None
或者类似这样的东西。
然后调用
l = consume_exception(dict.__getitem__, ['link'], KeyError)
t = consume_exception(dict.__getitem__, ['title'], KeyError)
...
8
t = dic.get('title')
这段代码不会产生错误。它的意思是:
try:
t = dic['title']
except KeyError:
t = None
而且请不要覆盖内置的名称,不要用 dict
作为变量名。用其他名字。
12
最简单的办法是使用 .get()
方法:
l = dict.get('link')
t = dict.get('title')
d = dict.get('description')
k = dict.get('keyword')
这样,t
这个变量就会包含 None
(如果你想要一个空字符串,可以用 dict.get('title', '')
这种写法)。另外一个选择是捕获 KeyError
这个错误。