NotImplementedException Classe

Definizione

Eccezione generata quando non viene implementato un metodo o un'operazione richiesta.

public ref class NotImplementedException : Exception
public ref class NotImplementedException : SystemException
public class NotImplementedException : Exception
public class NotImplementedException : SystemException
[System.Serializable]
public class NotImplementedException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class NotImplementedException : SystemException
type NotImplementedException = class
    inherit Exception
type NotImplementedException = class
    inherit SystemException
[<System.Serializable>]
type NotImplementedException = class
    inherit SystemException
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NotImplementedException = class
    inherit SystemException
Public Class NotImplementedException
Inherits Exception
Public Class NotImplementedException
Inherits SystemException
Ereditarietà
NotImplementedException
Ereditarietà
NotImplementedException
Attributi

Esempio

Nell'esempio seguente viene generata questa eccezione per un metodo che non è stato sviluppato.

static void Main(string[] args)
{
    try
    {
        FutureFeature();
    }
    catch (NotImplementedException notImp)
    {
        Console.WriteLine(notImp.Message);
    }
}

static void FutureFeature()
{
    // Not developed yet.
    throw new NotImplementedException();
}
open System

let futureFeature () =
    // Not developed yet.
    raise (NotImplementedException())

[<EntryPoint>]
let main _ =
    try
        futureFeature ()
    with :? NotImplementedException as notImp ->
        printfn $"{notImp.Message}"
    0
Sub Main()
    Try
        FutureFeature()
    Catch NotImp As NotImplementedException
        Console.WriteLine(NotImp.Message)
    End Try


End Sub

Sub FutureFeature()
    ' not developed yet.
    Throw New NotImplementedException()
End Sub

Commenti

L'eccezione NotImplementedException viene lanciata quando un particolare metodo, accessor get o accessor set è presente come membro di un tipo ma non viene implementato.

NotImplementedException usa l'implementazione di Object.Equals predefinita, che supporta l'uguaglianza dei riferimenti. Per un elenco dei valori iniziali per un'istanza di NotImplementedException, vedere i NotImplementedException costruttori.

Lanciare l'eccezione

È possibile scegliere di generare un'eccezione NotImplementedException nelle proprietà o nei metodi nei propri tipi quando un membro è ancora in fase di sviluppo e verrà implementato solo in un secondo momento nel codice di produzione.

Gestire l'eccezione

L'eccezione NotImplementedException indica che il metodo o la proprietà che si sta tentando di richiamare non ha implementazione e pertanto non fornisce alcuna funzionalità. Pertanto, non dovresti gestire questo errore in un blocco try/catch. È invece necessario rimuovere la chiamata del membro dal codice. È possibile includere una chiamata al membro quando viene implementata nella versione di produzione di una libreria.

In alcuni casi, potrebbe non essere usata un'eccezione NotImplementedException per indicare le funzionalità ancora in fase di sviluppo in una libreria di preproduzione. Tuttavia, ciò indica comunque che la funzionalità non è disponibile ed è necessario rimuovere la chiamata del membro dal codice.

NotImplementedException e altri tipi di eccezione

.NET include anche altri due tipi di eccezione e NotSupportedExceptionPlatformNotSupportedException, che indicano che non esiste alcuna implementazione per un determinato membro di un tipo. È consigliabile generare una di queste eccezioni invece di un'eccezione NotImplementedException nelle condizioni seguenti:

  • Generare un'eccezione PlatformNotSupportedException sulle piattaforme in cui la funzionalità non è supportata se è stato progettato un tipo con uno o più membri disponibili in alcune piattaforme o versioni, ma non in altri.

  • Generare un'eccezione NotSupportedException se l'implementazione di un membro di interfaccia o di un override a un metodo di classe base astratta non è possibile.

    Ad esempio, il Convert.ToInt32(DateTime) metodo genera un'eccezione NotSupportedException perché non esiste alcuna conversione significativa tra una data e un'ora e un intero con segno a 32 bit. Il metodo deve essere presente in questo caso perché la Convert classe implementa l'interfaccia IConvertible .

È anche consigliabile generare un'eccezione NotSupportedException se è stata implementata una classe base astratta e aggiungervi un nuovo membro che deve essere sottoposto a override da classi derivate. In tal caso, se si esegue l'astrazione del membro, le sottoclassi esistenti non riescono a essere caricate.

Costruttori

Nome Descrizione
NotImplementedException()

Inizializza una nuova istanza della NotImplementedException classe con le proprietà predefinite.

NotImplementedException(SerializationInfo, StreamingContext)
Obsoleti.

Inizializza una nuova istanza della NotImplementedException classe con dati serializzati.

NotImplementedException(String, Exception)

Inizializza una nuova istanza della NotImplementedException classe con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa di questa eccezione.

NotImplementedException(String)

Inizializza una nuova istanza della NotImplementedException classe con un messaggio di errore specificato.

Proprietà

Nome Descrizione
Data

Ottiene una raccolta di coppie chiave/valore che forniscono informazioni aggiuntive definite dall'utente sull'eccezione.

(Ereditato da Exception)
HelpLink

Ottiene o imposta un collegamento al file della Guida associato a questa eccezione.

(Ereditato da Exception)
HResult

Ottiene o imposta HRESULT, valore numerico codificato assegnato a un'eccezione specifica.

(Ereditato da Exception)
InnerException

Ottiene l'istanza Exception che ha causato l'eccezione corrente.

(Ereditato da Exception)
Message

Ottiene un messaggio che descrive l'eccezione corrente.

(Ereditato da Exception)
Source

Ottiene o imposta il nome dell'applicazione o dell'oggetto che causa l'errore.

(Ereditato da Exception)
StackTrace

Ottiene una rappresentazione di stringa dei fotogrammi immediati nello stack di chiamate.

(Ereditato da Exception)
TargetSite

Ottiene il metodo che genera l'eccezione corrente.

(Ereditato da Exception)

Metodi

Nome Descrizione
Equals(Object)

Determina se l'oggetto specificato è uguale all'oggetto corrente.

(Ereditato da Object)
GetBaseException()

Quando sottoposto a override in una classe derivata, restituisce l'oggetto Exception che rappresenta la causa radice di una o più eccezioni successive.

(Ereditato da Exception)
GetHashCode()

Funge da funzione hash predefinita.

(Ereditato da Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsoleti.

In caso di override in una classe derivata, imposta con le SerializationInfo informazioni sull'eccezione.

(Ereditato da Exception)
GetType()

Ottiene il tipo di runtime dell'istanza corrente.

(Ereditato da Exception)
MemberwiseClone()

Crea una copia superficiale del Objectcorrente.

(Ereditato da Object)
ToString()

Crea e restituisce una rappresentazione di stringa dell'eccezione corrente.

(Ereditato da Exception)

Eventi

Nome Descrizione
SerializeObjectState
Obsoleti.

Si verifica quando viene serializzata un'eccezione per creare un oggetto stato dell'eccezione contenente dati serializzati sull'eccezione.

(Ereditato da Exception)

Si applica a

Vedi anche