Класс System.NotImplementedException

В этой статье приводятся дополнительные замечания к справочной документации по этому API.

Исключение NotImplementedException возникает, когда определенный метод, метод получения или набор доступа присутствует в качестве члена типа, но не реализуется.

NotImplementedException использует реализацию по умолчанию Object.Equals , которая поддерживает равенство ссылок. Список начальных значений для экземпляра NotImplementedExceptionсм. в NotImplementedException конструкторах.

Создание исключения

Вы можете создать NotImplementedException исключение в свойствах или методах в собственных типах, когда этот элемент по-прежнему находится в разработке и будет реализован только в рабочем коде. Другими словами, NotImplementedException исключение должно быть синонимом "по-прежнему в разработке".

Обработка исключения

Исключение NotImplementedException указывает, что метод или свойство, которое вы пытаетесь вызвать, не имеет реализации и поэтому не предоставляет функциональных возможностей. В результате эту ошибку не следует обрабатывать в блоке try/catch . Вместо этого необходимо удалить вызов члена из кода. При реализации в рабочей версии библиотеки можно включить вызов участника.

В некоторых случаях NotImplementedException исключение может не использоваться для указания функциональности, которая по-прежнему находится в разработке в предварительной библиотеке. Однако это по-прежнему означает, что функциональность недоступна, и вы должны удалить вызов члена из кода.

NotImplementedException и другие типы исключений

.NET также включает два других типа исключений, NotSupportedException а PlatformNotSupportedExceptionтакже указывает, что реализация не существует для определенного члена типа. Вы должны вызвать одно из этих элементов вместо NotImplementedException исключения в следующих условиях:

  • PlatformNotSupportedException Создайте исключение на платформах, на которых функциональные возможности не поддерживаются, если вы разработали тип с одним или несколькими членами, доступными на некоторых платформах или версиях, но не другими.

  • NotSupportedException Вызовите исключение, если реализация члена интерфейса или переопределение метода абстрактного базового класса невозможна.

    Например, метод создает NotSupportedException исключение, Convert.ToInt32(DateTime) так как не существует понятного преобразования между датой и временем и 32-разрядным целым числом со знаком. Этот метод должен присутствовать в этом случае, так как Convert класс реализует IConvertible интерфейс.

Вы также должны вызвать NotSupportedException исключение, если вы реализовали абстрактный базовый класс и добавьте в него новый член, который должен быть переопределен производными классами. В этом случае создание абстрактного элемента приводит к тому, что существующие подклассы не загружались.