Перейти к содержимому

Throw new notimplementedexception c что это

  • автор:

System.NotImplementedException: «Метод или операция не реализована.»

Полностью код: https://cloud.mail.ru/public/ZPrJ/f94qVJDBC

Лучший ответ

Некая абсурдность. Вы обрабатываете событие загрузки формы и в нем выбрасываете исключение. Либо сделайте имплементацию, либо оставьте тело пустым.

Остальные ответы

А в чем вопрос-то? Ну, вызвал ты исключение, молодец. Если оно тебе не нужно — ну так и не вызывай.

Похожие вопросы

Ваш браузер устарел

Мы постоянно добавляем новый функционал в основной интерфейс проекта. К сожалению, старые браузеры не в состоянии качественно работать с современными программными продуктами. Для корректной работы используйте последние версии браузеров Chrome, Mozilla Firefox, Opera, Microsoft Edge или установите браузер Atom.

Not Implemented Exception Class

Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.

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
[] type NotImplementedException = class inherit SystemException
[] [] 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()) [] let main _ = try futureFeature () with :? NotImplementedException as notImp -> printfn $"" 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

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

Obsolete.

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

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

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

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

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

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

Gets the Exception instance that caused the current exception.

Gets a message that describes the current exception.

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

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

Gets the method that throws the current exception.

Methods

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

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

Serves as the default hash function.

Obsolete.

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

Gets the runtime type of the current instance.

Creates a shallow copy of the current Object.

Creates and returns a string representation of the current exception.

Events

Obsolete.

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

Applies to

See also

  • Exception
  • NotSupportedException

Для чего нужен throw new NotImplementedException()

Не могу понять до конца, для чего используют конструкции вида throw new NotImplementedException() , и чем throw , например в try-catch , отличается от throw new .

Отслеживать
32.1k 19 19 золотых знаков 79 79 серебряных знаков 106 106 бронзовых знаков
задан 17 сен 2015 в 8:00
1,875 3 3 золотых знака 22 22 серебряных знака 43 43 бронзовых знака

4 ответа 4

Сортировка: Сброс на вариант по умолчанию

В .NET есть несколько «системных» исключений, которые существуют, чтобы сообщить о причине отсутствия метода, но которые не надо ловить:

  • NotImplementedException — метод не реализован, но будет реализован в будущем. Вариация на тему комментария TODO, которая приводит к падению при выполнении.
  • NotSupportedException — метод не реализован и никогда не будет реализован. Используется, если базовый класс или реализуемый интерфейс имеют широкий API, и от потомков не предполагается реализация всех методов (например, потому что какая-то возможность не поддерживается).

По умолчанию при реализации интерфейса IDE генерирует методы с throw new NotImplementedException() , предполагая, что вы реализуете их. Если вы не собираетесь этого делать (например, ваша коллекция релизует IList<> , но не поддерживает запись), то следует заменить этот код на throw new NotSupportedException(«Foo is not supported due to. «) с сообщением о причине отсутствия реализации (например, в случае коллекци только для чтения сообщение может быть «Коллекция только для чтения не может быть изменена.»).

Если вы хотите проверить код в работе, и throw new NIE вам мешает, то можно заменить код на заглушку, например, return null; // TODO Implement Foo() method .

Not Implemented Exception Класс

Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.

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

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
[] type NotImplementedException = class inherit SystemException
[] [] type NotImplementedException = class inherit SystemException
Public Class NotImplementedException Inherits Exception
Public Class NotImplementedException Inherits SystemException

Наследование
NotImplementedException
Наследование
NotImplementedException

Примеры

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

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()) [] let main _ = try futureFeature () with :? NotImplementedException as notImp -> printfn $"" 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 

Комментарии

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

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

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

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

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

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

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

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

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

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

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

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

Конструкторы

Инициализирует новый экземпляр класса NotImplementedException стандартными свойствами.

Инициализирует новый экземпляр класса NotImplementedException с сериализованными данными.

Инициализирует новый экземпляр класса NotImplementedException с указанным сообщением об ошибке.

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

Свойства

Возвращает коллекцию пар «ключ-значение», предоставляющую дополнительные сведения об исключении.

Получает или задает ссылку на файл справки, связанный с этим исключением.

Возвращает или задает HRESULT — кодированное числовое значение, присвоенное определенному исключению.

Возвращает экземпляр класса Exception, который вызвал текущее исключение.

Возвращает сообщение, описывающее текущее исключение.

Возвращает или задает имя приложения или объекта, вызывавшего ошибку.

Получает строковое представление непосредственных кадров в стеке вызова.

Возвращает метод, создавший текущее исключение.

Методы

Определяет, равен ли указанный объект текущему объекту.

При переопределении в производном классе возвращает исключение Exception, которое является первопричиной одного или нескольких последующих исключений.

Служит хэш-функцией по умолчанию.

При переопределении в производном классе задает объект SerializationInfo со сведениями об исключении.

Возвращает тип среды выполнения текущего экземпляра.

Создает неполную копию текущего объекта Object.

Создает и возвращает строковое представление текущего исключения.

События

Является устаревшей.

Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении.

Применяется к

См. также раздел

  • Exception
  • NotSupportedException

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *