У меня вопрос относительно проверки ошибок в Python. Скажем, у меня есть функция, которая принимает путь к файлу в качестве входного файла:
def myFunction(filepath):
infile = open(filepath)
#etc etc...
Одним из возможных предварительных условий было бы то, что файл должен существовать.
Есть несколько возможных способов проверить это предварительное условие, и мне просто интересно, что это лучший способ сделать это.
i) Проверьте с помощью оператора if:
if not os.path.exists(filepath):
raise IOException('File does not exist: %s' % filepath)
Это то, что я обычно делал, хотя одно и то же IOException было бы поставлено Python, если файл не существует, даже если я его не поднимаю.
ii) Используйте assert, чтобы проверить предварительное условие:
assert os.path.exists(filepath), 'File does not exist: %s' % filepath
Использование утверждений, по-видимому, является "стандартным" способом проверки пре/постусловий, поэтому у меня возникает соблазн использовать их. Тем не менее, возможно, что эти утверждения отключены, когда во время выполнения используется флаг -o, что означает, что эта проверка может быть отключена, и это кажется рискованным.
iii) Не обрабатывайте предварительное условие вообще
Это связано с тем, что если путь к файлу не существует, в любом случае генерируется исключение, и сообщение об исключении будет достаточно подробным для того, чтобы пользователь знал, что файл не существует.
Мне просто интересно, какая из перечисленных выше - стандартная практика, которую я должен использовать для своих кодов.