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

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

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

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

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

Ответы (3 шт):

Автор решения: Anton Romanov

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

except Exception:
    #code

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

→ Ссылка
Автор решения: gil9red

Функция 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'
→ Ссылка
Автор решения: CrazyElf

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

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