6

我很确定以前版本的 Visual Studio 代码分析警告过 NotImplementedException 的使用,即包含此异常的任何成员

throw new NotImplementedException();

会发出 CA 警告。

Visual Studio 2008 似乎并非如此。

那个特定的规则是被删除了,还是我只是想象它曾经存在过?

4

4 回答 4

4

您可能正在考虑 从属性获取器、事件访问器、Equals、GetHashCode、Dispose 等特殊方法抛出时收到的FxCop 警告:NotImplementedException

CA1065:Microsoft.Design:“SomeClass.SomeProperty.get()”创建类型为“NotImplementedException”的异常,该异常类型不应在属性中引发。如果可能引发此异常实例,请使用不同的异常类型,将此属性转换为方法,或更改此属性的逻辑以使其不再引发异常。

但是,它并没有明确地与NotImplementedException. FxCop 有这些方法可能(直接)抛出的异常的白名单。

于 2010-03-01T21:30:05.607 回答
1

我不记得曾经在 Microsoft 提供的规则集中看到过这样的规则。这是我在日常工作中创建的第一个自定义规则之一,至少从 FxCop 1.35 的日子开始,所以我不得不猜测它可以追溯到 FxCop 1.32 的日子,如果它确实存在的话......

于 2010-03-01T18:02:20.433 回答
1

我知道这是一个老问题,但是当我使用 Visual Studio 2017 运行代码分析时,我收到了这个警告(2017 年 9 月 12 日)。这是 Wim Coenen 提到的“CA1065”代码,所以微软似乎必须已将 FxCop 规则移植到基于 Roslyn 的分析平台。

错误列表窗口中提供的链接

于 2017-09-12T15:58:07.317 回答
0

不幸的是,标准规则集中没有这样的规则。

您可以在我的其他答案之一中找到我的实现。

于 2010-12-30T11:57:12.537 回答