Существует ли межплатформенный способ получить информацию от OSError Python?

Исключение нулевого указателя генерируется, когда приложение пытается использовать null в случае, когда требуется объект. К ним относятся:

  1. Вызов метода экземпляра объекта null.
  2. Доступ или изменение поля объекта null.
  3. Принимая длину null, как если бы это был массив.
  4. Доступ или изменение слотов null, как если бы это был массив.
  5. Бросок null как будто это было значение Throwable.

Приложения должны бросать экземпляры этого класса, чтобы указать на другие незаконные использования объекта null.

Ссылка: http://docs.oracle.com/javase/8/docs/api/java/lang/NullPointerException.html

41
задан Community 23 May 2017 в 10:30
поделиться

1 ответ

Эти errno атрибут на ошибке должен быть тем же на всех платформах. Вы доберетесь WindowsError исключения в Windows, но так как это - подкласс OSError тот же" except OSError:" блок, поймает его. Windows действительно имеет свои собственные коды ошибки, и они доступны как .winerror, но эти .errno атрибут должен все еще присутствовать, и применим межплатформенным способом.

Символьные имена для различных кодов ошибки могут быть найдены в errno модуль. Например,

import os, errno
try:
    os.mkdir('test')
except OSError, e:
    if e.errno == errno.EEXIST:
        # Do something

можно также выполнить обратный поиск (для обнаружения, что кодирует Вас, должен использовать) с errno.errorcode. Это:

>>> errno.errorcode[17]
'EEXIST'
56
ответ дан Peter Mortensen 27 November 2019 в 00:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: