You can use sys.exc_info
to get information about the exception currently being handled, including the exception object itself. An IOError
exception contains all of the information you need, including the filename, the errno, and a string describing the error:
import sys
try:
f1 = open('example1')
f2 = open('example2')
except IOError:
type, value, traceback = sys.exc_info()
print('Error opening %s: %s' % (value.filename, value.strerror))
Execution in the try
block will obviously still halt after the first exception.