这两个代码片段都执行相同的操作:
在函数声明中尝试/除外:
def something():
try:
# code goes here
except:
print("Error")
sys.exit(1)
something()
尝试/函数调用除外:
def something():
# code goes here
try:
something()
except:
print("Error")
sys.exit(1)
是否有更好/更多Pythonic / PEP8推荐的版本,还是仅取决于个人喜好?我知道,如果该函数需要多次调用,那么第二种方法将变得乏味且重复,但是假设该函数仅被调用一次,我应该使用哪个方法?
答案 0 :(得分:0)
一般规则是“仅捕获可以处理的异常”,有关说明,请参见here
请注意,未捕获的异常(在大多数语言中)将导致程序以不成功的状态代码(即您的sys.exit(1)
)退出,也可能会打印出一条消息,指出发生了异常。因此,您的演示正在模拟默认行为,但效果更糟
此外,您正在捕获每个异常,这通常是不好的样式,例如您将隐式捕获SystemExit
和其他您可能不应该与之交互的内部异常