异常返回没有异常

时间:2011-11-23 04:58:42

标签: python

我得到的代码是这样的:

try:
     do_something()
except (urllib2.URLError, socket.timeout), er:
     print something 
except Exception, ex:
     print "The code failed because", ex, "Please review"

现在,问题在于执行上面的代码我得到以下输出:

The code failed because Please review

p.s。:'ex'应返回异常的名称,但不返回任何内容。知道为什么吗?

在参考@Yuji和@Peter时,我尝试了这段代码:

try:
    try:
           print x
    except Exception, ex:
           print "ex:", ex
           raise
except Exception, er:
    print "er:", er

输出是:

ex: name 'x' is not defined .
er: name 'x' is not defined .

现在,为什么加注(呃)会返回一个错误?为什么它不适合你?

1 个答案:

答案 0 :(得分:2)

不一定 - 期望并非完全正确。以下代码不打印任何内容:

try:
    raise BaseException()
except BaseException, ex:
    print ex 

但这会打印“abc”:

try:
    raise BaseException("abc")
except BaseException, ex:
    print ex