【问题标题】:Are all exceptions documented for built in python functions?是否记录了内置 python 函数的所有异常?
【发布时间】:2013-02-28 05:06:24
【问题描述】:

python 文档 here 没有提到在调用 file.write() 期间可能引发的异常。

这是否意味着该函数不会引发任何异常?例如,file.write() 在没有磁盘空间的情况下会有什么行为?

【问题讨论】:

    标签: python exception


    【解决方案1】:

    它记录在top of the section on file objects

    当文件操作因 I/O 相关原因失败时,会引发异常 IOError。这包括由于某种原因未定义操作的情况,例如 tty 设备上的seek() 或写入打开以供读取的文件。

    它没有提到每个方法的异常的原因是它对于每个由 IO 相关原因引起的 file 方法错误都是同一个异常 (IOError)。

    根据错误号可以找出IOError的类型,可以提取如下:

    try:
        f = open("nosuchfile.txt")
    except IOError as e:
        print e.errno
    

    这些错误编号来自操作系统,而不是 Python。在上述情况下,它将打印2,因为No such file or directory 是错误2。No space left on device 通常是错误28,尽管它可能取决于操作系统。

    【讨论】:

    • 谢谢。我想知道不同的故障模式是什么。例如,如果由于某种原因我无法写入该文件,我将启动一个新文件。但是,如果我用完了磁盘空间,我会一起放弃。有什么方法可以区分这些故障吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-30
    • 1970-01-01
    • 2012-07-05
    • 2015-08-31
    • 2021-01-04
    相关资源
    最近更新 更多