2024-06-16 07:50:27 发布
网友
from __future__ import print_function try: print "a" except SyntaxError: print('error')
为什么没有捕获SyntaxError异常?我使用的是python2.7
SyntaxError
输出:
您无法捕获模块本身的语法错误,因为它是在代码运行之前抛出的。Python不会在逐行编译时运行代码,而是整个文件在这里失败了。在
您可以这样做:
syntaxerror.py
from __future__ import print_function print "a"
catching.py:
catching.py
因为catching脚本可以在编译后运行,但是尝试导入syntaxerror然后在syntaxerror.py上触发一个新的编译任务,引发一个SyntaxError异常,然后可以捕捉到该异常。在
catching
syntaxerror
您无法捕获模块本身的语法错误,因为它是在代码运行之前抛出的。Python不会在逐行编译时运行代码,而是整个文件在这里失败了。在
您可以这样做:
syntaxerror.py
^{pr2}$catching.py
:因为
catching
脚本可以在编译后运行,但是尝试导入syntaxerror
然后在syntaxerror.py
上触发一个新的编译任务,引发一个SyntaxError
异常,然后可以捕捉到该异常。在相关问题 更多 >
编程相关推荐