How to get the errno of an IOError?
Different exceptions can also be tested for in the same 'except' clause, e.g.
try:
serial_port.open()
except (AttributeError, SerialException) as e:
print('cannot open serial port: {}'.format(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)
- http://docs.python.org/library/errno.html
- http://docs.python.org/library/os.html
For more information on IOError attributes, see the base class EnvironmentError:
- http://docs.python.org/library/exceptions.html?highlight=ioerror#exceptions.EnvironmentError
try:
fp = open("nothere")
except IOError as err:
print err.errno
print err.strerror
The Exception has an errno
attribute:
try:
fp = open("nothere")
except IOError as e:
print(e.errno)
print(e)