6 Stimmen

Warum warnt die Codeanalyse nicht vor NotImplementedException?

Ich bin mir ziemlich sicher, dass frühere Versionen von Visual Studio Code Analysis vor der Verwendung von NotImplementedException gewarnt haben, d. h. vor jedem Member, der diese

throw new NotImplementedException();

würde eine CA-Warnung ausgeben.

Dies scheint bei Visual Studio 2008 nicht der Fall zu sein.

Wurde diese spezielle Vorschrift abgeschafft, oder bilde ich mir nur ein, dass sie jemals existierte?

3voto

Wim Coenen Punkte 64891

Sie denken wahrscheinlich an diese FxCop-Warnung die man beim Werfen von NotImplementedException von speziellen Methoden wie einem Property Getter, Event Accessor, Equals, GetHashCode, Dispose usw:

CA1065 : Microsoft.Design : 'SomeClass.SomeProperty.get()' erzeugt eine Ausnahme vom Typ 'NotImplementedException', ein Ausnahmetyp, der nicht in einer Eigenschaft in einer Eigenschaft ausgelöst werden sollte. Wenn diese Ausnahme-Instanz ausgelöst werden könnte, verwenden Sie einen anderen Ausnahmetyp, wandeln Sie diese Eigenschaft in eine Methode um, oder ändern Sie die Logik dieser Eigenschaft so dass sie nicht länger eine Ausnahme auslöst.

Sie steht jedoch nicht ausdrücklich im Zusammenhang mit NotImplementedException . FxCop verfügt über Whitelists für die Ausnahmen, die von diesen Methoden (direkt) ausgelöst werden können.

1voto

Nicole Calinoiu Punkte 20595

Ich kann mich nicht erinnern, jemals eine solche Regel in dem von Microsoft bereitgestellten Regelsatz gesehen zu haben. Es ist eine der ersten benutzerdefinierten Regeln, die ich bei meiner Arbeit erstellt habe, mindestens seit den Tagen von FxCop 1.35, also muss ich annehmen, dass sie auf die Tage von FxCop 1.32 zurückgeht, wenn es sie jemals gab...

1voto

ryanwebjackson Punkte 826

Ich weiß, dass dies eine alte Frage ist, aber ich erhalte dies als Warnung (12. September 2017), wenn ich Code Analysis mit Visual Studio 2017 ausführe. Es ist der "CA1065"-Code, den Wim Coenen erwähnt, also scheint es, dass Microsoft die FxCop-Regeln auf die Roslyn-basierte Analyseplattform portiert haben muss.

Link im Fenster Fehlerliste angegeben

0voto

R. Martinho Fernandes Punkte 217895

Leider gibt es eine solche Regel im Standardregelwerk nicht.

Meine Umsetzung finden Sie in eine meiner anderen Antworten .

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X