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