Какие исключения могут возникнуть в приведённом ниже коде на языке Python?

Рейтинг: -1Ответов: 3Опубликовано: 20.02.2023

Какие исключения могут возникнуть в приведённом ниже коде на языке Python?

f = open('/logs/daemon.log', 'a+')
print(f.write('Hello World!'))

Могут ли это быть исключений из списка ниже?

  1. IndexError
  2. IOError
  3. OSError
  4. TypeError
  5. ValueError

Ответы

▲ 3

Функция open, судя по описанию, может выбросить следующие исключения:

  • OSError
  • ValueError
  • IOError
  • FileExistsError
  • InterruptedError

PS.

Если вам это нужно, чтобы ловить возможные ошибки, то лучше использовать общие типы, например Exception

Пример:

import traceback

try:
    with open('NOT_FOUND') as f:
        pass

except Exception:
    print("ERROR:\n" + traceback.format_exc())

Результат:

ERROR:
Traceback (most recent call last):
  File "<...>.py", line 10, in <module>
    with open('NOT_FOUND') as f:
FileNotFoundError: [Errno 2] No such file or directory: 'NOT_FOUND'

Если нужно ловить конкретные, то:

import traceback

try:
    with open('NOT_FOUND') as f:
        pass

except FileNotFoundError as e:
    print(f"FileNotFoundError: {e}")

except Exception:
    print("ERROR:\n" + traceback.format_exc())

Результат:

FileNotFoundError: [Errno 2] No such file or directory: 'NOT_FOUND'
▲ 2

Для того, чтобы ответить на этот вопрос вы должны для каждого исключения из данного вам списка:

  • прочитать описание исключения
  • прочитать описание используемых в коде функций и операторов
  • подумать, создаются ли в этом коде условия для возникновения конкретного исключения при определённых условиях
▲ 0

Если вы хотите исключать эти ошибки, то можно воспользоваться:

except Exception:
    #code

except Exception - исключит все ошибки которые могут вылететь