小编Joh*_*own的帖子

我们能在C#中获得一个canthrow声明吗?

作为一名优秀的程序员和代码审阅者,当我看到开发人员捕获"异常"时,我总是畏缩不前.我打算建议C#添加来自Java的"throws"条款,但在阅读Anders Hejlsberg访谈(http://www.artima.com/intv/handcuffs.html)后,我明白为什么它不存在.

相反,我想建议一下canthrow声明.该canthrow声明将具有以下属性

  1. 将在方法上声明canthrow语句并列出此方法抛出的异常.
  2. canthrow会向调用方法或intellisense报告可抛出的异常,以及被调用方法可能抛出但不在本地处理的任何异常.
  3. canthrow 不是契约性的,因此版本控制不是问题.

这里的想法是大多数开发人员想要捕获和处理正确的异常,但他们根本不知道它们是什么.如果我们有办法在设计时检查方法,开发人员将更有可能添加和处理相关的异常,并让未处理的异常冒出来.

现在作为最后的想法,你可能会说这可以通过使用反射的Intellisense完成,但这将返回所有可能的异常.canthrow将允许库开发人员强调预期由调用者处理的异常.

你怎么看?

c# java language-features

0
推荐指数
1
解决办法
188
查看次数

标签 统计

c# ×1

java ×1

language-features ×1