作为一名优秀的程序员和代码审阅者,当我看到开发人员捕获"异常"时,我总是畏缩不前.我打算建议C#添加来自Java的"throws"条款,但在阅读Anders Hejlsberg访谈(http://www.artima.com/intv/handcuffs.html)后,我明白为什么它不存在.
相反,我想建议一下canthrow声明.该canthrow声明将具有以下属性
这里的想法是大多数开发人员想要捕获和处理正确的异常,但他们根本不知道它们是什么.如果我们有办法在设计时检查方法,开发人员将更有可能添加和处理相关的异常,并让未处理的异常冒出来.
现在作为最后的想法,你可能会说这可以通过使用反射的Intellisense完成,但这将返回所有可能的异常.canthrow将允许库开发人员强调预期由调用者处理的异常.
你怎么看?