Поделиться через


Класс System.NotImplementedException

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

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

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

Выбросить исключение

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

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

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

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

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

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

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

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

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

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