gpt4 book ai didi

python-3.x - 错误处理函数的有效方法

转载 作者:行者123 更新时间:2023-12-03 07:52:33 24 4
gpt4 key购买 nike

错误处理功能示例:

def read_file():
try:
with open(filename, 'rb') as fd:
x = fd.read()
except FileNotFoundError as e:
return(e)
return(x)

我会这样调用该函数:
file = read_file("test.txt")
if file:
#do something

有没有比多次使用return更有效的方式来处理错误?

最佳答案

捕获e然后返回它是很奇怪的。您的函数的用户为什么要返回错误而不是引发错误?返回错误不会处理它,它只是将责任传递给调用方以处理错误。让错误引发是使调用者负责处理错误的更自然的方法。因此,完全不捕获错误是有意义的:

def read_file(filename):
with open(filename, 'rb') as fd:
return fd.read()

对于想要编写 if file:来测试文件是否存在的理想用例,您的 read_file函数可以捕获该错误并返回 None,因此您的 if条件将为false:

def read_file(filename):
try:
with open(filename, 'rb') as fd:
return fd.read()
except FileNotFoundError:
return None

但是,这意味着如果调用者不知道该函数可能返回 None,则在使用预期文件数据而不是 NoneFileNotFoundError时会出现错误,并且将很难识别出该问题。您的代码。

如果确实希望使用可能不存在的文件名来调用函数,则使用 read_file_if_exists之类的函数命名可能是一种更好的方法,以表明使用不存在的文件名调用此函数不被视为错误。

关于python-3.x - 错误处理函数的有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59869542/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com