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.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
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 CLR или другой библиотекой классов и указывает на ошибку разработчика. При вызове ArgumentException из кода следует убедиться, что свойство исключения Message содержит понятное сообщение об ошибке, описывающее недопустимый аргумент и ожидаемый диапазон значений аргумента.
Основными производными классами являются ArgumentExceptionArgumentNullException и ArgumentOutOfRangeException. Эти производные классы следует использовать вместо ArgumentException, за исключением ситуаций, когда ни из производных классов не является приемлемым. Например, исключения должны вызываться:
ArgumentNullException всякий раз
null
, когда передается методу, который не принимает его в качестве допустимого аргумента.ArgumentOutOfRangeException если значение аргумента выходит за пределы диапазона допустимых значений; Например, если значение "46" передается в качестве аргумента month во время создания DateTime.
Если в вызове метода нет аргумента или если сбой не связан с самими аргументами, следует InvalidOperationException использовать метод .
ArgumentException использует COR_E_ARGUMENT HRESULT со значением 0x80070057.
Список начальных значений свойств для экземпляра ArgumentException, см. в разделе ArgumentException конструкторы.
В F# можно использовать функцию invalidArg для создания и создания исключение 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) |
ThrowIfNullOrEmpty(String, String) |
Создает исключение, если |
ThrowIfNullOrWhiteSpace(String, String) |
Создает исключение, если |
ToString() |
Создает и возвращает строковое представление текущего исключения. (Унаследовано от Exception) |
События
SerializeObjectState |
Устаревшие..
Возникает, когда исключение сериализовано для создания объекта состояния исключения, содержащего сериализованные данные об исключении. (Унаследовано от Exception) |