返回介绍

捕捉过少:使用基于类的分类

发布于 2024-01-29 22:24:14 字数 634 浏览 0 评论 0 收藏 0

另一方面,处理器也不应过于具体化。当在try中列出特定的异常时,就只捕捉实际所列出的事件。这不见得是坏事,如果系统演进发展,以后会引发其他的异常,就得回头在代码其他地方,把这些新的异常加入异常的列表中。

我们在前一章中见到了这种现象。例如,下列处理器是把MyExcept1和MyExcept2看作是正常的情况,并把其他的一切视为错误。如果未来增加了MyExcept3,就会视为错误并对其进行处理,除非更新异常列表。

值得庆幸的是,小心使用第33章讨论过的基于类的异常,可让这种陷阱消失。就像我们所见到的,如果你捕捉一般的超类,就可以在未来新增和引发更为特定的子类,而不用手动扩展except分句的列表:超类会变成可扩展的异常分类。

无论你是否使用基于类的异常的分类层次,采用一点细微的设计,就可以走得长远。这个故事的寓意是,异常处理器不要过于一般化,也不要过于太具体化,而且要明智选择try语句所包装的代码量。特别是在较大系统中,异常规则也应该是整体设计的一部分。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文