System.NotImplementedException-Klasse

Dieser Artikel enthält ergänzende Hinweise zur Referenzdokumentation für diese API.

Die NotImplementedException-Ausnahme wird ausgelöst, wenn eine bestimmte Methode, ein get-Accessor oder set-Accessor als Member eines Typs vorhanden ist, aber nicht implementiert wird.

NotImplementedException verwendet die Object.Equals-Standardimplementierung, die die Verweisgleichheit unterstützt. Eine Liste der anfänglichen Werte für eine Instanz von NotImplementedException finden Sie im Artikel zu den NotImplementedException-Konstruktoren.

Auslösen der Ausnahme

Sie können eine NotImplementedException-Ausnahme in Eigenschaften oder Methoden in Ihren eigenen Typen auslösen, wenn sich der Member noch in der Entwicklung befindet und erst später in Produktionscode implementiert wird. Anders ausgedrückt: Eine NotImplementedException-Ausnahme sollte gleichbedeutend mit „noch in der Entwicklung“ sein.

Behandeln der Ausnahme

Die NotImplementedException-Ausnahme gibt an, dass die Methode oder Eigenschaft, die Sie aufrufen möchten, keine Implementierung aufweist und daher keine Funktionalität bereitstellt. Daher sollten Sie diesen Fehler nicht in einem try/catch-Block behandeln. Stattdessen sollten Sie den Memberaufruf aus Ihrem Code entfernen. Sie können einen Aufruf des Members einschließen, wenn er in der Produktionsversion einer Bibliothek implementiert wird.

In einigen Fällen kann eine NotImplementedException-Ausnahme nicht verwendet werden, um Funktionen anzugeben, die sich in einer Vorproduktionsbibliothek noch in der Entwicklung befinden. Dies weist jedoch weiterhin darauf hin, dass die Funktionen nicht verfügbar sind, und Sie sollten den Memberaufruf aus Ihrem Code entfernen.

NotImplementedException und andere Ausnahmetypen

.NET enthält zudem zwei weitere Ausnahmetypen (NotSupportedException und PlatformNotSupportedException), die angeben, dass für einen bestimmten Member eines Typs keine Implementierung vorhanden ist. Unter den folgenden Bedingungen sollte eine dieser Ausnahmen anstelle einer NotImplementedException-Ausnahme ausgelöst werden:

  • Lösen Sie eine PlatformNotSupportedException-Ausnahme auf Plattformen aus, auf denen die Funktionen nicht unterstützt werden, wenn Sie einen Typ mit einem oder mehreren Membern entworfen haben, die in einigen Plattformen oder Versionen verfügbar sind, in anderen jedoch nicht.

  • Lösen Sie eine NotSupportedException-Ausnahme aus, wenn die Implementierung eines Schnittstellenmembers oder einer Außerkraftsetzung für eine abstrakte Basisklassenmethode nicht möglich ist.

    Die Convert.ToInt32(DateTime)-Methode löst beispielsweise eine NotSupportedException-Ausnahme aus, da keine sinnvolle Konvertierung zwischen Datum und Uhrzeit und einer32-Bit-Ganzzahl mit Vorzeichen vorhanden ist. Die Methode muss in diesem Fall vorhanden sein, da die Convert-Klasse die IConvertible-Schnittstelle implementiert.

Sie sollten außerdem eine NotSupportedException-Ausnahme auslösen, wenn Sie eine abstrakte Basisklasse implementiert haben und ihr einen neuen Member hinzufügen, der von abgeleiteten Klassen überschrieben werden muss. In diesem Fall führt das Abstrahieren des Members dazu, dass vorhandene Unterklassen nicht geladen werden.