Python Exception handling
C has perror and errno, which print and store the last error encountered. This is convenient when doing file io as I do not have to fstat() every file that fails as an argument to fopen() to present the user with a reason why the call failed.
I was wondering what is the proper way to grab errno when gracefully handling the IOError exception in python?
In [1]: fp = open("/notthere") --------------------------------------------------------------------------- IOError Traceback (most recent call last) /home/mugen/ in () IOError: [Errno 2] No such file or directory: '/notthere' In [2]: fp = open("test/testfile") --------------------------------------------------------------------------- IOError Traceback (most recent call last) /home/mugen/ in () IOError: [Errno 13] Permission denied: 'test/testfile' In [5]: try: ...: fp = open("nothere") ...: except IOError: ...: print "This failed for some reason..." ...: ...: This failed for some reason...
该异常具有errno
属性:
try:
fp = open("nothere")
except IOError as e:
print(e.errno)
print(e)
Here's how you can do it. Also see the errno
module and os.strerror
function for some utilities.
import os, errno
try:
f = open('asdfasdf', 'r')
except IOError as ioex:
print 'errno:', ioex.errno
print 'err code:', errno.errorcode[ioex.errno]
print 'err message:', os.strerror(ioex.errno)
For more information on IOError attributes, see the base class EnvironmentError:
try:
fp = open("nothere")
except IOError as err:
print err.errno
print err.strerror
链接地址: http://www.djcxy.com/p/9254.html
上一篇: 平台在Python中的音频播放
下一篇: Python异常处理