您可能知道Microsoft关于在.NET中使用异常的建议:
性能注意事项
...
仅在特殊情况下抛出例外,......
另外,当返回代码足够时,不要抛出异常......
(请参阅http://msdn.microsoft.com/en-us/library/system.exception.aspx上的全文.)
作为比较,你会推荐相同的Python代码吗?
请考虑以下代码:
def f(x):
if x < 10:
return Exception("error")
else:
raise Exception("error2")
if __name__ == "__main__":
try:
f(5) # f(20)
except Exception:
print str(Exception)
Run Code Online (Sandbox Code Playgroud)
有什么区别吗?我什么时候应该使用return Exception?什么时候应该使用raise?