如何捕捉python中的非致命错误
问题描述:
我使用解析css的tinycss2中的parse_declaration_list函数。当我给它无效的css时,它返回[< ParseError invalid>]。但是,我不能为了我的生活而弄清楚如何真正发现这个错误。如何捕捉python中的非致命错误
我已经试过:
try:
parse_declaration_list(arg)
except:
do_something()
没有骰子。
try:
parse_declaration_list(arg)[0]
except:
do_something()
nope。
try:
parse_declaration_list(arg)
except ParseError:
do_something()
仍然没有
error = parse_declaration_list(arg)[0]
if isinstance(error, Exception):
do_something()
对不起,没有做不到的。我完全被难住了,我的一切事情都是关于正常,行为错误的东西。
答
documentation表示错误未发生,但返回,即try/except
在此处不起作用。相反,你必须检查结果,就像你最后的做法一样。但是,ParseError
似乎不是Exception
的子类。另外,你可能不能只检查列表的第一个元素。你可以尝试像这样(未测试):
result = parse_declaration_list(arg)
if any(isinstance(r, tinycss2.ast.ParseError) for r in result):
do_something()
+0
谢谢!我差点去那里。我试过了“isinstance(result,tinycss2.ast.ParseError)”,但它没有起作用,所以我放弃了这个方针。 – vorpal
你可以发布追踪? '尝试/除了'应该赶上_everything_。 –
也许它内部捕捉,然后打印,然后返回到您的电话。 –