Python语法错误不是caugh

2024-06-16 07:50:27 发布

您现在位置:Python中文网/ 问答频道 /正文

from __future__ import print_function

try:
    print "a"
except SyntaxError:
    print('error')

为什么没有捕获SyntaxError异常?我使用的是python2.7

输出:

^{2}$

Tags: fromimportfunctionfutureerrorprinttryexcept
1条回答
网友
1楼 · 发布于 2024-06-16 07:50:27

您无法捕获模块本身的语法错误,因为它是在代码运行之前抛出的。Python不会在逐行编译时运行代码,而是整个文件在这里失败了。在

您可以这样做:

syntaxerror.py

from __future__ import print_function

print "a"

catching.py

^{pr2}$

因为catching脚本可以在编译后运行,但是尝试导入syntaxerror然后在syntaxerror.py上触发一个新的编译任务,引发一个SyntaxError异常,然后可以捕捉到该异常。在

相关问题 更多 >