E.14: Use purpose-designed user-defined types as exceptions (not built-in types)
E.14:使用根据目的设计的用户定制类型异常(非内置类型)
Reason(原因)
A user-defined type is unlikely to clash with other people's exceptions.
用户定义类型不大可能和其他人的异常发生冲突。
Example(示例)
Example, don't(反面示例)
Note(注意)
The standard-library classes derived from exception should be used only as base classes or for exceptions that require only "generic" handling. Like built-in types, their use could clash with other people's use of them.
继承自exception的标准库类应该只用于基类或只要求“通常”处理的异常。和内置类型相似,你对它们的使用可能和其他人的使用发生冲突。
Example, don't(反面示例)
See also: Discussion
参见:话题讨论
Enforcement(实施建议)
Catch throw and catch of a built-in type. Maybe warn about throw and catch using a standard-library exception type. Obviously, exceptions derived from the std::exception hierarchy are fine.
捕捉针对内置类型的throw和catch。也许可以针对使用标准库异常类型的throw和catch发出警告。显然,继承自std::exception的异常类没有问题。
原文链接
新书介绍
以下是本人3月份出版的新书,拜托多多关注!

本书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。
对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。
觉得本文有帮助?请分享给更多人。
关注微信公众号【面向对象思考】轻松学习每一天!
面向对象开发,面向对象思考!

















