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


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объект. В нем используется АргументException.GetType(). Свойство Name для отображения имени объекта исключения, а также использует Message свойство для отображения текста сообщения об исключении.

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
open System

let divideByTwo num =
    // If num is an odd number, throw an ArgumentException.
    if num % 2 = 1 then
        invalidArg "num" $"{num} is not an even number"

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

// Define some integers for a division operation.
let values = [ 10; 7 ]
for value in values do
    try 
        printfn $"{value} divided by 2 is {divideByTwo value}"
    with
    | :? ArgumentException as e ->
        printfn $"{e.GetType().Name}: {e.Message}"
    
    printfn ""

// This example displays the following output:
//     10 divided by 2 is 5
//
//     ArgumentException: 7 is not an even number (Parameter '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 вызывается средой cl language runtime или другой библиотекой классов и указывает на ошибку разработчика. Если вы создаете код ArgumentException , необходимо убедиться, что свойство исключения Message содержит понятное сообщение об ошибке, описывающее недопустимый аргумент и ожидаемый диапазон значений для аргумента.

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

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

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

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

ArgumentException использует COR_E_ARGUMENT HRESULT, которая имеет значение 0x80070057.

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

В F#можно использовать недопустимую функциюArg для создания и создания аргументаException.

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

Имя Описание
ArgumentException()

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

ArgumentException(SerializationInfo, StreamingContext)
Устаревшие..

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

ArgumentException(String, Exception)

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

ArgumentException(String, String, Exception)

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

ArgumentException(String, String)

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

ArgumentException(String)

Инициализирует новый экземпляр 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 Задает объект с именем параметра и дополнительными сведениями об исключении.

GetType()

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

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

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

(Унаследовано от Object)
ThrowIfNullOrEmpty(String, String)

Создает исключение, если argument оно null или пустое.

ThrowIfNullOrWhiteSpace(String, String)

Создает исключение, если argument оно nullпустое или состоит только из пробелов.

ToString()

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

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

События

Имя Описание
SerializeObjectState
Устаревшие..

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

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

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

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