Почему анализ кода не предупреждает об исключении NotImplementedException? - PullRequest
6 голосов
/ 25 февраля 2010

Я почти уверен, что предыдущие версии Visual Studio Code Analysis предупреждали об использовании NotImplementedException, то есть любого члена, который содержал это

throw new NotImplementedException();

выдаст предупреждение CA.

Похоже, что это не так с Visual Studio 2008.

Было ли это конкретное правило удалено, или я просто воображаю, что оно когда-либо существовало?

Ответы [ 4 ]

4 голосов
/ 02 марта 2010

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

CA1065: Microsoft.Design: 'SomeClass.SomeProperty.get ()' создает исключение типа NotImplementedException, тип исключения, который не должен быть поднят в собственность. Если это исключение может быть возбуждено, использовать другой тип исключения, преобразовать это свойство в метод, или изменить логику этого свойства так что он больше не поднимает исключение.

Тем не менее, он явно не связан с NotImplementedException. FxCop имеет белые списки исключений, которые могут (напрямую) создаваться этими методами.

1 голос
/ 12 сентября 2017

Я знаю, что это старый вопрос, но я получаю его как предупреждение (12 сентября 2017 г.), когда запускаю анализ кода с использованием Visual Studio 2017. Это код "CA1065", который упоминает Вим Коенен, поэтому Похоже, Microsoft перенесла правила FxCop на платформу анализа на основе Roslyn.

Ссылка в окне списка ошибок

1 голос
/ 01 марта 2010

Я не помню, чтобы когда-либо видел такое правило в наборе правил Microsoft. Это одно из первых пользовательских правил, которое я создал на дневной работе, по крайней мере, со времен FxCop 1.35, поэтому я должен предположить, что оно восходит к временам FxCop 1.32, если оно когда-либо существовало ...

0 голосов
/ 30 декабря 2010

К сожалению, в стандартном наборе правил такого правила нет.

Вы можете найти мою реализацию этого в одном из моих других ответов .

...