ArgumentException Класс

Определение

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

public ref class ArgumentException : Exception
public ref class ArgumentException : SystemException
public class ArgumentException : Exception
public class ArgumentException : SystemException
[System.Serializable]
public class ArgumentException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentException : SystemException
type ArgumentException = class
    inherit Exception
type ArgumentException = class
    inherit SystemException
type ArgumentException = class
    inherit SystemException
    interface ISerializable
[<System.Serializable>]
type ArgumentException = class
    inherit SystemException
    interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArgumentException = class
    inherit SystemException
    interface ISerializable
Public Class ArgumentException
Inherits Exception
Public Class ArgumentException
Inherits SystemException
Наследование
ArgumentException
Наследование
ArgumentException
Производный
Атрибуты
Реализации

Примеры

В следующем примере показано, как создавать и перехватывать ArgumentException . Он использует ArgumentException. GetType (). Свойство Name для вывода имени объекта исключения, а также использует Message свойство для вывода текста сообщения об исключении.

using namespace System;

static int DivideByTwo(int num) 
{
    // If num is an odd number, throw an ArgumentException.
    if ((num & 1) == 1)
        throw gcnew ArgumentException(String::Format("{0} is not an even number", num), 
                                      "num");

    // num is even, return half of its value.
    return num / 2;
}

void main() 
{
    // Define some integers for a division operation.
    array<int>^ values = { 10, 7 };
    for each (int value in values) {
        try {
           Console::WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value));
        }
        catch (ArgumentException^ e) {
           Console::WriteLine("{0}: {1}", e->GetType()->Name, e->Message);
        }
        Console::WriteLine();
    }
}
// This example displays the following output:
//     10 divided by 2 is 5
//     
//     ArgumentException: 7 is not an even number
//     Parameter name: num
using System;

public class Example
{
    static void Main()
    {
        // Define some integers for a division operation.
        int[] values = { 10, 7 };
        foreach (var value in values) {
            try {
               Console.WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value));
            }
            catch (ArgumentException e) {
               Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message);
            }
            Console.WriteLine();
        }
    }

    static int DivideByTwo(int num)
    {
        // If num is an odd number, throw an ArgumentException.
        if ((num & 1) == 1)
            throw new ArgumentException(String.Format("{0} is not an even number", num),
                                      "num");

        // num is even, return half of its value.
        return num / 2;
    }
}
// This example displays the following output:
//     10 divided by 2 is 5
//
//     ArgumentException: 7 is not an even number
//     Parameter name: num
Public Class Example
    Public Shared Sub Main()
        ' Define some integers for a division operation.
        Dim values() As Integer = { 10, 7 }

        For Each value In values
            Try 
               Console.WriteLine("{0} divided by 2 is {1}", value, DivideByTwo(value))
            Catch e As ArgumentException
               Console.WriteLine("{0}: {1}", e.GetType().Name, e.Message)
            End Try
            Console.WriteLine()
        Next
    End Sub
    
    Private Shared Function DivideByTwo(ByVal num As Integer) As Integer
        ' If num is an odd number, throw an ArgumentException.
        If (num And 1) = 1 Then
            Throw New ArgumentException(String.Format("{0} is not an even number", num), 
                                      "num")
        End If
        Return num \ 2
    End Function
End Class
' The example displays the following output:
'     10 divided by 2 is 5
'     
'     ArgumentException: 7 is not an even number
'     Parameter name: num

Комментарии

ArgumentException вызывается при вызове метода и по крайней мере один из переданных аргументов не соответствует спецификации параметра вызываемого метода. ParamNameСвойство определяет недопустимый аргумент.

Чаще всего исключение вызывается ArgumentException средой CLR или другой библиотекой классов и указывает на ошибку разработчика. При вызове ArgumentException из кода необходимо убедиться, что Message свойство исключения содержит осмысленное сообщение об ошибке, описывающее недопустимый аргумент и ожидаемый диапазон значений для аргумента.

Первичными производными классами ArgumentException являются ArgumentNullException и ArgumentOutOfRangeException . Эти производные классы следует использовать вместо ArgumentException , за исключением случаев, когда ни один из производных классов является приемлемым. Например, исключения должны создаваться следующим образом:

  • ArgumentNullException Каждый раз, когда null параметр передается в метод, который не принимает его в качестве допустимого аргумента.

  • ArgumentOutOfRangeException Если значение аргумента находится вне диапазона допустимых значений; Например, если значение "46" передается в качестве аргумента month во время создания DateTime .

Если в вызове метода нет аргументов или если ошибка не затрагивает сами аргументы, то InvalidOperationException следует использовать.

ArgumentException использует COR_E_ARGUMENT HRESULT, имеющий значение 0x80070057.

Список начальных значений свойств для экземпляра ArgumentException, см. в разделе ArgumentException конструкторы.

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

ArgumentException()

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

ArgumentException(SerializationInfo, StreamingContext)

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

ArgumentException(String)

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

ArgumentException(String, Exception)

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

ArgumentException(String, String)

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

ArgumentException(String, String, Exception)

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

Свойства

Data

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

(Унаследовано от Exception)
HelpLink

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

(Унаследовано от Exception)
HResult

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

(Унаследовано от Exception)
InnerException

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

(Унаследовано от Exception)
Message

Возвращает сообщение об ошибке и имя параметра или только сообщение об ошибке, если не задан ни один параметр.

ParamName

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

Source

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

(Унаследовано от Exception)
StackTrace

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

(Унаследовано от Exception)
TargetSite

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

(Унаследовано от Exception)

Методы

Equals(Object)

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

(Унаследовано от Object)
GetBaseException()

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

(Унаследовано от Exception)
GetHashCode()

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

(Унаследовано от Object)
GetObjectData(SerializationInfo, StreamingContext)

Задает объекту SerializationInfo имя параметра и дополнительную информацию об исключении.

GetObjectData(SerializationInfo, StreamingContext)

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

(Унаследовано от Exception)
GetType()

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

(Унаследовано от Exception)
MemberwiseClone()

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

(Унаследовано от Object)
ToString()

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

(Унаследовано от Exception)

События

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

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

(Унаследовано от Exception)

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

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