在Java世界中,我们知道异常被分类为checked和runtime,每当抛出一个已检查的异常时,该东西的调用者将被迫以这种或那种方式处理该异常。因此,调用者将充分意识到存在异常并准备/编码以处理该异常的事实。
但是来到Python,因为没有检查异常的概念(我希望这是正确的),某些事情的调用者如何知道该事件是否会引发异常?鉴于“缺乏可以抛出异常的知识”,调用者如何知道它可以处理异常,直到为时已晚?
答案 0 :(得分:3)
Python中没有经过检查的异常。
例如,如果您需要安全:
try:
...
except Exception:
...
避免使用bare except子句,因为它甚至可以捕获像KeyboardInterrupt这样的东西。
答案 1 :(得分:0)
据我所知,Python(6年)与Python中的throws
关键字没有任何相似之处。
答案 2 :(得分:0)
某事的调用者如何知道该事件是否会引发异常?
通过阅读该文档的文档。
答案 3 :(得分:0)
Python的设计原则:it's easier to ask forgiveness than permission
EAFP 比许可更容易请求宽恕。这种常见的Python编码风格假设存在有效的键或属性 如果假设被证明是假的,则捕获异常。这干净又快 风格的特点是存在许多尝试和除外 声明。该技术与许多人共同的LBYL风格形成鲜明对比 其他语言,如C.
Basics of Unix Philosophy:修复规则
修复你所能做的 - 但是当你必须失败时,请尽快失败 尽可能。
两者的本质是使用错误处理,允许您快速找到您的错误,并从长远来看,使用更强大的程序。
实际的教训是学习errors you should look for as you develop,并且只尝试捕获模块中的那些,并且只使用泛型Exception
处理作为包装。