Пойман исключение в Python все еще пузырится - PullRequest
0 голосов
/ 07 апреля 2019

Следующая функция ищет файл, и если он не может его найти, что-то вычисляет, а затем записывает в файл. По сути, это своего рода наивная система кеширования.

def get_result(param):
    try:
        result = get_file(param)

    except FileNotFoundError:
        result = compute_something(param)
        save_to_file(result)

    return result

Эта функция затем запрашивается из другой:

def do_something(param):
    try:
        my_result = get_result(param)
    except Exception as e:
        print("Exception happened: {}".format(e.__class__.__name__))

Теперь давайте попробуем, предполагая, что файл кэша еще не существует:

>>> do_something(my_param)
Exception happened: FileNotFoundError

Как получается, что FileNotFoundError, будучи пойманным в get_result, все еще всплывает в do_something?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...