System.NotImplementedException osztály

Megjegyzés:

Ez a cikk kiegészítő megjegyzéseket tartalmaz az API referenciadokumentációjához.

A NotImplementedException kivétel akkor fordul elő, ha egy adott metódus, tartozék lekérése vagy beállítása egy típus tagjaként jelen van, de nincs implementálva.

NotImplementedException az alapértelmezett Object.Equals implementációt használja, amely támogatja a referencia-egyenlőséget. Egy példány NotImplementedExceptionkezdeti értékeinek listájáért tekintse meg a NotImplementedException konstruktorokat.

A kivétel elvetése

Dönthet úgy, hogy kivételt NotImplementedException dob a saját típusainak tulajdonságaiban vagy metódusaiban, ha az adott tag még fejlesztés alatt áll, és csak később lesz implementálva a produkciós kódban. Más szóval a NotImplementedException kivételnek a "még fejlesztés alatt álló" szinonimának kell lennie.

A kivétel kezelése

A NotImplementedException kivétel azt jelzi, hogy a meghívni kívánt metódus vagy tulajdonság nem rendelkezik implementációval, ezért nem biztosít funkciókat. Ennek eredményeképpen ezt a hibát nem szabad try/catch blokkban kezelni. Ehelyett távolítsa el a taghívást a kódból. A kódtár éles verziójában való implementáláskor meghívhatja a tagot.

Bizonyos esetekben előfordulhat, hogy egy NotImplementedException kivétel nem jelzi az éles üzem előtti kódtárban még fejlesztés alatt álló funkciókat. Ez azonban továbbra is azt jelzi, hogy a funkció nem érhető el, ezért el kell távolítania a taghívást a kódból.

NotImplementedException és egyéb kivételtípusok

A .NET két másik kivételtípust is tartalmaz, NotSupportedException és PlatformNotSupportedException, amelyek azt jelzik, hogy nem létezik implementáció egy adott típus egy tagjára. A következő feltételek közül az egyik fennállása esetén érdemes NotImplementedException kivétel helyett ezt használni:

  • Dobja a PlatformNotSupportedException kivételt azokon a platformokon, amelyeken a funkció nem támogatott, ha olyan típust tervezett, amely legalább egy taggal rendelkezik, amely egyes platformokon vagy verziókban elérhető, másokon viszont nem.

  • Dobjon NotSupportedException kivételt, ha egy interfész tag megvalósítása vagy egy absztrakt alaposztály metódusának felülbírálása nem lehetséges.

    A Convert.ToInt32(DateTime) metódus például NotSupportedException kivételt dob, mert nincs értelmes átalakítás a dátum és az idő, valamint a 32 bites aláírt egész szám között. Ebben az esetben a metódusnak jelen kell lennie, mert az Convert osztály implementálja az interfészt IConvertible .

Akkor is kivételt NotSupportedException kell alkalmaznia, ha egy absztrakt alaposztályt implementált, és hozzáad egy új tagot, amelyet felül kell bírálnia a származtatott osztályoknak. Ebben az esetben a tag absztrakttá tétele miatt a meglévő alosztályok nem tudnak betöltődni.