python try: except: finally

# Open new file to write
file = None
try:
    file = open(filePath, 'w')
except IOError:
    msg = ("Unable to create file on disk.")
    file.close()
    return
finally:
    file.write("Hello World!")
    file.close()

Приведенный выше код извлечен из функция. Одна из пользовательских систем сообщает об ошибке в строке:

file.write("Hello World!")

error:

AttributeError: 'NoneType' object has no attribute 'write'

Вопрос в том, что если python не удалось открыть данный файл, выполняется блок «except», и он должен вернуть , но управление передается в строку, которая выдает данную ошибку. Значение переменной «файл» - «Нет».

Есть указатели?

44
задан Sreenath Nannat 15 October 2011 в 14:54
поделиться