没有为有错误的代码抛出PyCompileError异常

时间:2018-08-12 01:58:58

标签: python

我似乎无法使用真正错误的python代码生成此异常。

我使用了this question中的代码来检查我的工作。在这里,只需稍作修改:

import py_compile

def check(python_file):
    try:
        file = open(python_file, 'r')
        py_compile.compile(python_file, doraise=True)

    except py_compile.PyCompileError:
       print("<"+python_file+"> does not contain syntactically correct Python code")

    else:
       print("Compiled " + python_file + " with no issues.")

check("example.py")

example.py文件仅包含:

print ("This is fine.")
prant ("This should be an error.")

'prant'而不是'print'是一个简单的语法错误,如果我运行'python example.py',则会看到:

This is fine.
Traceback (most recent call last):
  File "example.py", line 2, in <module>
    prant ("This should be an error.")
NameError: name 'prant' is not defined

如果我在顶部的“ compiler.py”处调用该脚本,然后运行“ python editor.py”,则将说明没有问题。

我已经证实,如果括号或引号不匹配,compiler.py将抱怨语法正确性,因此它确实捕获了 some 问题。但是我希望能够以与运行“ python example.py”相同的方式来检测文件何时有错误。基本上,如果使用“ python”运行它时出现错误,我希望能够检测到。

有没有办法做到这一点?为何在出现语法错误时未引发PyCompileError?

0 个答案:

没有答案