except claus中的逗号

2024-06-16 09:33:54 发布

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

我试过找,但什么也找不到。不过,我可能只是说错了。在我正在读的书中。戴夫·库尔曼写的一本Python书try:except语句捕捉一个IOError。在

def test():
    infilename = 'nothing.txt'
    try:
        infile = open(infilename, 'r')
        for line in infile:
            print line
    except IOError, exp:
        print 'cannot open file "%s"' % infilename

我的问题是IOError之后的经验是什么。它能做什么?为什么会这样?在


Tags: testtxtfordefline语句openinfile
3条回答
except: IOError, exp: 

应该是这样的:

^{pr2}$

exp存储错误消息,因此exp的值为:没有这样的文件或目录:XXX
您可以将其重命名为任何其他名称

它为except块内的异常提供变量名:

>>> try:
...     raise Exception('foo')
... except Exception, ex:
...     print ex
...     print type(ex)
...
foo
<type 'exceptions.Exception'>

我个人觉得as语法更清晰:

^{pr2}$

但是根据this question中的答案,as语法直到2.6才被引入。在

exp是异常对象将被分配到的变量。当引发异常时,Python会创建一个异常对象,其中包含有关错误的更多信息,包括堆栈跟踪,通常还包括错误消息。这段代码实际上并没有使用exp,所以省略它会更简洁。在

相关问题 更多 >