首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么自定义异常中有公共构造函数?

为什么自定义异常中有公共构造函数?
EN

Stack Overflow用户
提问于 2020-02-26 11:58:09
回答 1查看 144关注 0票数 0

Microsoft创建自定义异常的指南似乎规定,至少应该有3个公共构造函数:空构造函数、接收消息的构造函数和内部异常构造函数。我的问题是,为何我们需要公共建筑师呢?如果我正在设计一个抛出一些自定义异常(例如SomethingNotFoundException等)的框架,那么我希望框架用户捕获并处理它们,而不是抛出它们,因为框架本身中的API会抛出它们。那么,为什么不仅仅将构造函数作为内部而只公开用户处理这些异常所需的公共属性呢?

EN

回答 1

Stack Overflow用户

发布于 2022-06-08 00:31:09

客户端代码的单元测试需要用户定义异常的公共构造函数,而客户端代码调用您的方法,并且必须处理异常,可能会引发异常。但是,如果一个构造函数需要自定义类型的参数,那么它仍然很难正确实例化。

同时,Microsoft用户定义异常准则与YAGNI和KISS原则相矛盾,并建议编写和保留未使用的代码。如果您没有计划序列化您的异常,为什么要使其可序列化?额外的代码需要额外的测试等等,这增加了支持成本或/和降低了可靠性。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60413424

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档