python - 如何捕获 python 中的非 fatal error

标签 python error-handling tinycss

我正在使用 tinycss2 中的 parse_declaration_list 函数它解析 css。当我给它无效的 css 时,它返回 [< ParseError invalid>]。然而,我一生都无法弄清楚如何真正捕获这个错误。

我已经尝试过:

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()

抱歉,没有办法。我完全被难住了,我在谷歌上搜索的所有内容都与正常的、行为良好的错误有关。

最佳答案

documentation表示错误不是引发的,而是返回的,即 try/except 在这里不起作用。相反,您必须检查结果,就像在上一种方法中所做的那样。然而,ParseError似乎不是 Exception 的子类。另外,您可能不能只检查列表的第一个元素。您可以尝试这样的事情(未经测试):

result = parse_declaration_list(arg)
if any(isinstance(r, tinycss2.ast.ParseError) for r in result):
    do_something()

关于python - 如何捕获 python 中的非 fatal error ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46565619/

相关文章:

C# - 未处理的异常 "System.NullReferenceException"

python - FileNotFoundError : [Errno 2] No such file or directory: 'tinycss2\\VERSION'

python - python 中字符集之间的转换

Python + OpenCV = 如何画出麦田圈?

python - 替换 numpy 数组中的元素

python - 如何将具有自定义 keras 层(.h5)的 keras 模型卡住为 tensorflow 图(.pb)?

node.js - Mongoose : error returned is empty object

java - android 互联网连接可用性