相关疑难解决方法(0)

无法捕获语法错误python

try:
    x===x
except SyntaxError:
    print "You cannot do that"
Run Code Online (Sandbox Code Playgroud)

输出

    x===x
       ^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)

这也没有抓住它

try:
    x===x
except:
    print "You cannot do that"
Run Code Online (Sandbox Code Playgroud)

其他错误,如NameError,ValueError,都是可捕获的.

思考?

系统规格:

import sys
print(sys.version)
Run Code Online (Sandbox Code Playgroud)

- > 2.7.5(默认,2014年3月9日,22:15:05)[GCC 4.2.1兼容的Apple LLVM 5.0(clang-500.0.68)]

python error-handling

22
推荐指数
2
解决办法
8476
查看次数

Python中的SyntaxError不一致?

考虑这两个片段:

try:
    a+a=a
except SyntaxError:
    print "first exception caught"
Run Code Online (Sandbox Code Playgroud)

.

try:
    eval("a+a=a")
except SyntaxError:
    print "second exception caught"
Run Code Online (Sandbox Code Playgroud)

在第二种情况下,打印"第二个异常.."语句(异常捕获),而在第一个异常捕获时则不是.

第一个异常(让我们称之为"SyntaxError1")与第二个异常("SyntaxError2")?

有没有办法捕获SyntaxError1(从而抑制编译时错误)?包装大块代码eval是不能令人满意的;)

python exception

15
推荐指数
1
解决办法
1451
查看次数

标签 统计

python ×2

error-handling ×1

exception ×1