Защо анализът на кода не предупреждава за NotImplementedException?

Почти съм сигурен, че предишните версии на Visual Studio Code Analysis предупреждават за използването на NotImplementedException, т.е. всеки член, който съдържа това

throw new NotImplementedException();

ще даде предупреждение на CA.

Това не изглежда да е случаят с Visual Studio 2008.

Беше ли премахнато това конкретно правило или просто си въобразявам, че някога е съществувало?


person Mark Seemann    schedule 25.02.2010    source източник
comment
Няма предупреждение от VS 2005, а също така няма подходящи резултати от Google за "how to fix violations" NotImplementedException - не мисля, че това беше или беше част от набора от правила по подразбиране.   -  person AakashM    schedule 25.02.2010
comment
Може би беше във FxCop, но никога във VS...   -  person Mark Seemann    schedule 25.02.2010


Отговори (4)


Вероятно си мислите за това предупреждение на FxCop които получавате, когато хвърляте NotImplementedException от специални методи като инструмент за получаване на свойства, инструмент за достъп на събития, Equals, GetHashCode, Dispose и т.н.:

CA1065: Microsoft.Design: „SomeClass.SomeProperty.get()“ създава изключение от тип „NotImplementedException“, тип изключение, което не трябва да се повдига в свойство. Ако този екземпляр на изключение може да бъде повдигнат, използвайте различен тип изключение, преобразувайте това свойство в метод или променете логиката на това свойство, така че вече да не предизвиква изключение.

Това обаче не е изрично свързано с NotImplementedException. FxCop има бели списъци за изключенията, които могат да бъдат (директно) хвърлени от тези методи.

person Wim Coenen    schedule 01.03.2010

Не си спомням някога да съм виждал такова правило в набора от правила, изпратен от Microsoft. Това е едно от първите персонализирани правила, които създадох в ежедневната си работа поне от дните на FxCop 1.35, така че би трябвало да предположа, че напомня за дните на FxCop 1.32, ако изобщо е съществувал...

person Nicole Calinoiu    schedule 01.03.2010
comment
Започвам да си мисля, че паметта ми си играе с мен, но ако не е, със сигурност е минало много време, откакто си спомням да съм го виждал. - person Mark Seemann; 01.03.2010

Знам, че това е стар въпрос, но получавам това като предупреждение (12 септември 2017 г.), когато изпълнявам Code Analysis, използвайки Visual Studio 2017. Това е кодът „CA1065“, който Wim Coenen споменава, така че изглежда, че Microsoft трябва са пренесли правилата на FxCop към базираната на Roslyn платформа за анализ.

Връзка, предоставена в прозореца на списъка с грешки

person ryanwebjackson    schedule 12.09.2017

За съжаление в стандартния набор от правила няма такова правило.

Можете да намерите моята реализация на това в един от другите ми отговори.

person R. Martinho Fernandes    schedule 30.12.2010