以下函数查找文件,如果找不到该文件,则计算一些内容然后写入该文件。基本上,这是一种幼稚的缓存系统。
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
冒出来?