Исключения в Python обработки
C имеет perror и errno, которые печатают и хранят последнюю обнаруженную ошибку. Это удобно при выполнении ввода-вывода файла, поскольку мне не нужно fstat() каждый файл, который не работает в качестве аргумента для fopen (), чтобы представить пользователю причину сбоя вызова.
мне было интересно, Как правильно захватить errno при изящной обработке исключения IOError в 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...
4 ответов
различные исключения также могут быть проверены в том же предложении "except", например
try:
serial_port.open()
except (AttributeError, SerialException) as e:
print('cannot open serial port: {}'.format(e))