什么时候自定义异常类最有价值?
是否存在应该或不应该使用它们的情况?有什么好处?
相关问题:
- 抛出异常的性能注意事项
- 您是否为特定问题编写例外情况或一般例外情况?
要问自己的问题:
- 谁会抓住它?如果没有人,那么您实际上并不需要自定义异常。
- 你会把它扔到哪里?是否有足够的可用上下文,或者在异常对最终捕获器有用之前您需要捕获并重新抛出几次?
- 你为什么要扔它?因为您捕获了异常并需要附加附加信息?因为您在某些数据中遇到了不可恢复的错误,并且需要将具体情况传达回客户端代码?因为你喜欢
throw
荷兰国际集团的东西?
- 什么是例外?不是造成它的原因,而是它是什么从捕手的角度来看?他们可以修复并重试什么吗?他们应该做的事never重试?他们应该通知用户什么?他们应该附加上下文信息然后重新抛出的东西?What确定您需要传递的信息(如果有)...
戒律:
- 不要将时间浪费在永远不会被捕获的自定义异常上。
- 不要“双重”异常:每个自定义异常类型都应该有一个明确定义的情况,可以并且应该捕获它;不匹配的异常应该分解成它们自己的自定义类型(而不是强制捕获器将条件逻辑构建到单个
catch()
条款)。
- 除非你有一个good不这样做的原因是,始终允许附加来自先前捕获的异常的内部异常/数据。失去背景几乎没有帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)