如何强制使用Try/Catch围绕特定方法

Mos*_*aou 2 c# attributes exception try-catch

我正在创建一个"公共"库,供其他团队成员在各种解决方案项目中使用.这些方法通常void是没有实际返回数据的函数.

我正在寻找一个为什么强迫Try...Catch其他人在一个块内使用这些方法.我需要确保错误得到妥善处理.我虽然依赖布尔返回类型,但也不允许我返回错误消息,所以我唯一的选择是抛出一个Exception.

如果无法进行适当的强制,如何在编译时弹出一个属性来警告开发人员有关Try/Catch的要求?(Obsolete属性的种类).

还有其他更好的方法吗

编辑:

这是我的完整场景:

我有一个调用Web服务的代码方法来远程更新值.更新非常重要.它自己运行的方法很好,但如果无法访问Web服务怎么办?该调用不会返回任何值.

Mar*_*ell 9

try/ catchblock中放置一些内容并不能使其"正确处理" - 事实上,在绝大多数情况下,处理异常的正确方法是让它冒泡到一个新的水平.警告:try/ finally更常见的是,允许资源清理,但更常见的是using.

您不能在代码上强制执行"并且必须正确使用它"; 这在任何API中是隐含的,你只会引起烦恼和烦恼,并迫使人们进入不合适且无益的编码风格,同时给你一个完全人为的和错误的代码正确感.

如果您想确保代码正常运行:测试它.

您没有可用于此方案的属性.您可以创建一个FxCop规则或类似规则,但由于上述原因:我不推荐它.

  • @MoslemBenDhaou如果人们需要添加一个`try` /`catch`来获取编译代码,那么***他们将添加一个`try` /`catch`来获取编译代码***; 你要检查的是他们实际上做了一些明智的事 - 这要强制执行起来要困难得多 (3认同)