在Python中引发SyntaxError

我正在编写一个基于Python的解析器,它可以理解我们使用的一些配置文件。 这些文件基本上由(名称,类型)和(名称,值)对组成:

参数文件:

# defines a field called some_bool of type boolean
some_bool : bool

配置文件:

# assigns True to some_bool
some_bool = bool

我不确定当我在解析文件时遇到语法错误时该怎么办:

# bol instead of bool
some_bool : bol

在这种情况下引发SyntaxError异常是不是很糟糕,还是SyntaxError异常能够更好地显示Python代码中的问题?


使用SyntaxError可能会SyntaxError困惑。 要么我会创建一些特殊的异常类型,例如。 ParseError或忽略给定的值,只是作为警告登录


SyntaxError可能会令人困惑,但在我被说服之前,我需要进一步的论证,这是在这些情况下不要使用它的好理由。 海事组织使用不同的例外情况同样或更令人困惑。

即使解析(例如)特定于域的代码时可能会引起混淆,当然我们可以在错误消息中明确指出它是具有错误的特定于域的语言,而不是Python源代码。

另外,SyntaxError提供了行号和文件名的现成字段。 滚动你自己的SyntaxError将需要重新发明这些轮子。

这里接受的答案说

使用语义上适合您问题的最具体的Exception构造函数。

...解析时遇到的错误是(语义上)SyntaxError。

我的直觉是,在这种情况下,明确构造的SyntaxError是正确的。 这也是这里公认的答案。

任何人都可以说服我吗?

链接地址: http://www.djcxy.com/p/25869.html

上一篇: Raising SyntaxError inside a Python

下一篇: Python: How to ignore an exception and proceed?