我有两个函数,它们基本上执行相同的操作,但是在发生异常的情况下返回不同。首选哪一种方法?
方法1:
def f1():
try:
data = some_random_function()
return data["success"]
except Exception as error:
print(error)
return "failure"
方法2:
def f2():
try:
data = some_random_function()
return data["success"]
except Exception as error:
print(error)
return "failure"
尽管两种方法的工作方式相同,即在无异常代码的情况下为return data["success"]
,否则为return "failure"
,但这两种方法在传递信息的方式上是不同的:
A1-发生异常时返回“失败”
A2-返回“失败”作为默认返回值。
所以,我建议您使用第二种方法,因为它更加清晰明了。
尽管这两种方法是等效的,但我还是建议使用方法1。这更加清楚地表明,只有在出现异常时才返回“失败”。某些阅读方法2可能会给人留下第一印象,即它总是返回“失败”。严格来说,这是从干净的代码角度来看的。
由于您具有通用的错误汇总功能,因此两种方法都是等效的,因为在发生异常的情况下,您将输入print "failure"
分支。
我想这取决于口味和将来的可维护性,即,当您添加更多的except
分支以不同方式处理一些错误时,选择方法2。
这完全取决于个人喜好。对我来说,方法1比两种方法清晰得多,但两者都是很好的解决方案。我认为它不仅是个人喜好,而且是您正在使用的更多代码库。如果您与团队合作,请研究结构相似的代码,看看其他人做了什么。统一的代码库比在这里和那里的花哨的代码有价值得多。
此外,对于具有功能范围的JavaScript
和python
之类的语言,我想提出第三个选择:
def f3():
try:
data = some_random_function()
message = "success"
except Exception as error:
print(error)
message = "failure"
return message