Tho*_*s W 18 python exception try-catch python-3.x
如何在python 3上捕获错误?我已经google了很多,但没有一个答案似乎有效.open.txt文件不存在,因此应该打印e.errno.
这就是我现在尝试的:
这是我定义的功能
try:
with open(file, 'r') as file:
file = file.read()
return file.encode('UTF-8')
except OSError as e:
print(e.errno)
Run Code Online (Sandbox Code Playgroud)
但是当我收到此错误时,我不打印任何内容
FileNotFoundError: [Errno 2] No such file or directory: 'test.txt'
Run Code Online (Sandbox Code Playgroud)
Mar*_*ers 28
FileNotFoundError是OSErrorcatch或异常本身的子类:
except OSError as e:
Run Code Online (Sandbox Code Playgroud)
操作系统异常已在Python 3.3中重新编写; IOError已被合并OSError.请参阅" 新增内容"文档中的PEP 3151:重新编写操作系统和IO异常层次结构部分.
有关详细信息,请参阅操作系统异常部分以获取更多信息,向下滚动查看类层次结构.
也就是说,您的代码应该仍然像IOError现在的别名一样工作OSError:
>>> IOError
<class 'OSError'>
Run Code Online (Sandbox Code Playgroud)
确保将异常处理程序放在正确的位置.仔细查看异常的回溯,确保您没有错过它实际被引发的位置.最后但并非最不重要的,你确实重启了你的Python脚本,对吗?
| 归档时间: |
|
| 查看次数: |
42241 次 |
| 最近记录: |