我正在使用解析css的tinycss2中的parse_declaration_list函数。当我给它无效的css时,它返回[< ParseError无效>]。但是,我不能为我的生活弄清楚如何实际捕获这个错误。
我试过了:
try:
parse_declaration_list(arg)
except:
do_something()
没有骰子。
try:
parse_declaration_list(arg)[0]
except:
do_something()
都能跟得上。
try:
parse_declaration_list(arg)
except ParseError:
do_something()
仍然没有
error = parse_declaration_list(arg)[0]
if isinstance(error, Exception):
do_something()
对不起,没有办法。我完全难倒了,而且谷歌的一切都是关于正常,表现良好的错误。
答案 0 :(得分:1)
documentation表示错误未引发,但已返回,即try/except
将无效。相反,您必须检查结果,就像在上一个方法中一样。但是,ParseError
似乎不是Exception
的子类。此外,您可能不能只检查列表的第一个元素。您可以尝试这样的事情(未经测试):
result = parse_declaration_list(arg)
if any(isinstance(r, tinycss2.ast.ParseError) for r in result):
do_something()