mcy*_*mcy 6 python pep8 try-except
在Python中使用try/except块时,是否建议将其委托给可能引发异常的任何方法,或者在父函数中捕获它,或者两者兼而有之?
例如,以下哪项是首选?
def my_function():
s = something.that.might.go_wrong()
return s
def main():
try:
s = my_function()
except Exception:
print "Error"
Run Code Online (Sandbox Code Playgroud)
要么
def my_function():
try:
s = something.that.might.go_wrong()
return s
except Exception:
print "Error"
def main():
s = my_function()
Run Code Online (Sandbox Code Playgroud)
PEP 8在这个问题上似乎很安静,我似乎找到了两个案例的例子.
它实际上取决于所讨论函数的语义.通常,如果您正在编写库,那么您的库可能应该处理在库中引发的异常(可选地将它们重新提升为新的库特定异常).
但是,在单个函数级别,您要考虑的主要事项是您希望处理异常的上下文/范围 - 如果在内部函数内的特殊情况下可以执行合理的不同操作,则可能是在内部函数中处理它很有用; 否则,在外部函数中处理它可能更有意义.
对于编写输出的特定情况,仅在最高级别执行此操作通常很有用,而内部函数仅用于(a)返回值或(b)引发异常.这使得代码更容易测试,因为您不必担心测试副作用输出.
| 归档时间: |
|
| 查看次数: |
957 次 |
| 最近记录: |