我正在创建一个"公共"库,供其他团队成员在各种解决方案项目中使用.这些方法通常void
是没有实际返回数据的函数.
我正在寻找一个为什么强迫Try...Catch
其他人在一个块内使用这些方法.我需要确保错误得到妥善处理.我虽然依赖布尔返回类型,但也不允许我返回错误消息,所以我唯一的选择是抛出一个Exception
.
如果无法进行适当的强制,如何在编译时弹出一个属性来警告开发人员有关Try/Catch的要求?(Obsolete
属性的种类).
还有其他更好的方法吗
编辑:
这是我的完整场景:
我有一个调用Web服务的代码方法来远程更新值.更新非常重要.它自己运行的方法很好,但如果无法访问Web服务怎么办?该调用不会返回任何值.
在try
/ catch
block中放置一些内容并不能使其"正确处理" - 事实上,在绝大多数情况下,处理异常的正确方法是让它冒泡到一个新的水平.警告:try
/ finally
更常见的是,允许资源清理,但更常见的是using
.
您不能在代码上强制执行"并且必须正确使用它"; 这在任何API中是隐含的,你只会引起烦恼和烦恼,并迫使人们进入不合适且无益的编码风格,同时给你一个完全人为的和错误的代码正确感.
如果您想确保代码正常运行:测试它.
您没有可用于此方案的属性.您可以创建一个FxCop规则或类似规则,但由于上述原因:我不推荐它.