NotImplementedException Class

Definition

The exception that is thrown when a requested method or operation is not implemented.

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
Inheritance
NotImplementedException
Inheritance
NotImplementedException
Attributes

Examples

The following example throws this exception for a method that has not been developed.

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

Remarks

The NotImplementedException exception is thrown when a particular method, get accessor, or set accessor is present as a member of a type but is not implemented.

NotImplementedException uses the default Object.Equals implementation, which supports reference equality. For a list of initial values for an instance of NotImplementedException, see the NotImplementedException constructors.

Throwing the exception

You might choose to throw a NotImplementedException exception in properties or methods in your own types when the that member is still in development and will only later be implemented in production code. In other words, a NotImplementedException exception should be synonymous with "still in development."

Handling the exception

The NotImplementedException exception indicates that the method or property that you are attempting to invoke has no implementation and therefore provides no functionality. As a result, you should not handle this error in a try/catch block. Instead, you should remove the member invocation from your code. You can include a call to the member when it is implemented in the production version of a library.

In some cases, a NotImplementedException exception may not be used to indicate functionality that is still in development in a pre-production library. However, this still indicates that the functionality is unavailable, and you should remove the member invocation from your code.

NotImplementedException and other exception types

The .NET Framework also includes two other exception types, NotSupportedException and PlatformNotSupportedException, that indicate that no implementation exists for a particular member of a type. You should throw one of these instead of a NotImplementedException exception under the following conditions.

PlatformNotSupportedException exception
If you've designed a type with one or more members that are available on some platforms or in some versions but not on others, you can throw this exception on platforms on which the functionality is not supported.

NotSupportedException exception
Throw a NotSupportedException exception if the implementation of an interface member or an override to an abstract base class method is not possible. For example, the Convert.ToInt32(DateTime) method throws a NotSupportedException exception because no meaningful conversion between a date and time and a 32-bit signed integer exists. The method must be present in this case because the Convert class implements the IConvertible interface.

You should also throw a NotSupportedException exception if you've implemented an abstract base class and add a new member to it that must be overridden by derived classes. In that case, making the member abstract causes existing subclasses to fail to load.

Constructors

NotImplementedException()

Initializes a new instance of the NotImplementedException class with default properties.

NotImplementedException(SerializationInfo, StreamingContext)
Obsolete.

Initializes a new instance of the NotImplementedException class with serialized data.

NotImplementedException(String)

Initializes a new instance of the NotImplementedException class with a specified error message.

NotImplementedException(String, Exception)

Initializes a new instance of the NotImplementedException class with a specified error message and a reference to the inner exception that is the cause of this exception.

Properties

Data

Gets a collection of key/value pairs that provide additional user-defined information about the exception.

(Inherited from Exception)
HelpLink

Gets or sets a link to the help file associated with this exception.

(Inherited from Exception)
HResult

Gets or sets HRESULT, a coded numerical value that is assigned to a specific exception.

(Inherited from Exception)
InnerException

Gets the Exception instance that caused the current exception.

(Inherited from Exception)
Message

Gets a message that describes the current exception.

(Inherited from Exception)
Source

Gets or sets the name of the application or the object that causes the error.

(Inherited from Exception)
StackTrace

Gets a string representation of the immediate frames on the call stack.

(Inherited from Exception)
TargetSite

Gets the method that throws the current exception.

(Inherited from Exception)

Methods

Equals(Object)

Determines whether the specified object is equal to the current object.

(Inherited from Object)
GetBaseException()

When overridden in a derived class, returns the Exception that is the root cause of one or more subsequent exceptions.

(Inherited from Exception)
GetHashCode()

Serves as the default hash function.

(Inherited from Object)
GetObjectData(SerializationInfo, StreamingContext)
Obsolete.

When overridden in a derived class, sets the SerializationInfo with information about the exception.

(Inherited from Exception)
GetType()

Gets the runtime type of the current instance.

(Inherited from Exception)
MemberwiseClone()

Creates a shallow copy of the current Object.

(Inherited from Object)
ToString()

Creates and returns a string representation of the current exception.

(Inherited from Exception)

Events

SerializeObjectState
Obsolete.

Occurs when an exception is serialized to create an exception state object that contains serialized data about the exception.

(Inherited from Exception)

Applies to

See also