首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么无法通过try-except处理"io.UnsupportedOperation“错误

为什么无法通过try-except处理"io.UnsupportedOperation“错误
EN

Stack Overflow用户
提问于 2019-05-25 22:01:24
回答 1查看 675关注 0票数 1

运行以下代码将引发io.UnsupportedOperation错误,因为该文件是以“写入”模式打开的-

代码语言:javascript
复制
with open("hi.txt", "w") as f:
    print(f.read())

输出为-

代码语言:javascript
复制
io.UnsupportedOperation: not readable

所以,我们可以通过这样做来掩盖这一点-

代码语言:javascript
复制
try:
    with open("hi.txt", "w") as f:
        print(f.read())
except io.UnsupportedOperation:
    print("Please give the file read permission")

输出-

代码语言:javascript
复制
NameError: name 'io' is not defined

甚至去掉了“io”吐出了同样的错误-

代码语言:javascript
复制
try:
    with open("hi.txt", "w") as f:
        print(f.read())
except UnsupportedOperation:
    print("Please give the file read permission")

输出-

代码语言:javascript
复制
NameError: name 'UnsupportedOperation' is not defined

为什么它不起作用?"io.UnsupportedOperation“不是一个错误吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-05-25 22:08:50

可以在模块io中找到io.UnsupportedError。因此,在使用它之前,我们需要导入io。

import io

然后,当我们测试try except子句中的错误时,我们可以使用io.UnsupportedError。这为我们提供了:

代码语言:javascript
复制
import io

try:
    with open("hi.txt", "w") as f:
        print(f.read())
except io.UnsupportedOperation as e:
    print(e)

或者如果你只使用io模块来检查这个特定的错误。

代码语言:javascript
复制
from io import UnsupportedError

try:
    with open("hi.txt", "w") as f:
        print(f.read())
except UnsupportedOperation as e:
    print(e)
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56305530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档