代码之家  ›  专栏  ›  技术社区  ›  Mark Seemann

为什么代码分析不警告NotImplementedException?

  •  6
  • Mark Seemann  · 技术社区  · 16 年前

    我确信以前版本的visual studio代码分析警告过使用notimplementedexception,即任何包含此内容的成员

    throw new NotImplementedException();
    

    会给CA警告。

    visual studio 2008似乎不是这样。

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

    4 回复  |  直到 16 年前
        1
  •  4
  •   Wim Coenen    16 年前

    你可能在想 this FxCop warning 当你投掷的时候 NotImplementedException 从属性getter、事件访问器、equals、gethashcode、dispose等特殊方法:

    CA1065:Microsoft。设计: 'someClass.someProperty.get()' 创建类型为的异常 “NotImplementedException”,一个 不应为 在一处房产中长大。如果这样 可能引发异常实例, 使用不同的异常类型, 将此属性转换为方法, 或者改变这个属性的逻辑 它不再引起 例外。

    但是,它与 未实现异常 . fxcop为这些方法可能(直接)抛出的异常提供了白名单。

        2
  •  1
  •   Nicole Calinoiu    16 年前

    我不记得在微软发布的规则集中见过这样的规则。这是至少从fxcop 1.35时代起我在日常工作中创建的第一个自定义规则之一,所以我不得不猜测,如果fxcop1.32真的存在的话,它会回到fxcop1.32时代……

        3
  •  1
  •   ryanwebjackson Matt    8 年前

    我知道这是一个老问题,但在使用visual studio 2017运行代码分析时,我将此作为警告(2017年9月12日)。wim coenen提到的是“ca1065”代码,因此微软似乎已经将fxcop规则移植到了基于roslyn的分析平台上。

    Link provided in Error List window

        4
  •  0
  •   Community Mohan Dere    9 年前

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

    你可以在 one of my other answers .