Sdílet prostřednictvím


ArgumentException Třída

Definice

Výjimka, která se vyvolá, když některý z argumentů zadaný metodě není platný.

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
Dědičnost
ArgumentException
Dědičnost
ArgumentException
Odvozené
Atributy
Implementuje

Příklady

Následující příklad ukazuje, jak vyvolat a zachytit .ArgumentException Používá ArgumentException.GetType(). Vlastnost Name zobrazující název objektu výjimky a také používá Message vlastnost k zobrazení textu zprávy o výjimce.

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

Poznámky

ArgumentException je vyvolána při vyvolání metody a nejméně jeden z předaných argumentů nesplňuje specifikaci parametru volané metody. Vlastnost ParamName identifikuje neplatný argument.

Nejčastěji ArgumentException je vyvolán modulem CLR (Common Language Runtime) nebo jinou knihovnou tříd a indikuje chybu vývojáře. Pokud z kódu vyvoláte ArgumentException výjimku, měli byste zajistit, aby vlastnost výjimky Message obsahovala smysluplnou chybovou zprávu, která popisuje neplatný argument a očekávaný rozsah hodnot argumentu.

Primární odvozené třídy ArgumentException jsou ArgumentNullException a ArgumentOutOfRangeException. Tyto odvozené třídy by měly být použity místo ArgumentException, s výjimkou situací, kdy není žádná z odvozených tříd přijatelná. Výjimky by například měly být vyvolány:

  • ArgumentNullException při každém null předání metodě, která ji nepřijímá jako platný argument.

  • ArgumentOutOfRangeException pokud je hodnota argumentu mimo rozsah přijatelných hodnot; Například když je hodnota "46" předána jako argument měsíce při vytváření DateTime.

Pokud volání metody nemá žádný argument nebo pokud selhání nezahrnuje samotné argumenty, InvalidOperationException je třeba použít.

ArgumentException používá COR_E_ARGUMENT HRESULT, který má hodnotu 0x80070057.

Seznam počátečních hodnot vlastností pro instanci ArgumentExceptionnaleznete v konstruktoru ArgumentException.

V jazyce F# můžete k vygenerování a vyvolání argumentu ArgumentException použít funkci invalidArg .

Konstruktory

Name Description
ArgumentException()

Inicializuje novou instanci ArgumentException třídy.

ArgumentException(SerializationInfo, StreamingContext)
Zastaralé.

Inicializuje novou instanci ArgumentException třídy serializovanými daty.

ArgumentException(String, Exception)

Inicializuje novou instanci ArgumentException třídy se zadanou chybovou zprávou a odkazem na vnitřní výjimku, která je příčinou této výjimky.

ArgumentException(String, String, Exception)

Inicializuje novou instanci ArgumentException třídy se zadanou chybovou zprávou, názvem parametru a odkazem na vnitřní výjimku, která je příčinou této výjimky.

ArgumentException(String, String)

Inicializuje novou instanci ArgumentException třídy se zadanou chybovou zprávou a názvem parametru, který způsobuje tuto výjimku.

ArgumentException(String)

Inicializuje novou instanci ArgumentException třídy se zadanou chybovou zprávou.

Vlastnosti

Name Description
Data

Získá kolekci párů klíč/hodnota, které poskytují další uživatelem definované informace o výjimce.

(Zděděno od Exception)
HelpLink

Získá nebo nastaví odkaz na soubor nápovědy přidružený k této výjimce.

(Zděděno od Exception)
HResult

Získá nebo nastaví HRESULT, kódovanou číselnou hodnotu, která je přiřazena ke konkrétní výjimce.

(Zděděno od Exception)
InnerException

Exception Získá instanci, která způsobila aktuální výjimku.

(Zděděno od Exception)
Message

Získá chybovou zprávu a název parametru nebo pouze chybovou zprávu, pokud není nastaven žádný název parametru.

ParamName

Získá název parametru, který způsobuje tuto výjimku.

Source

Získá nebo nastaví název aplikace nebo objektu, který způsobuje chybu.

(Zděděno od Exception)
StackTrace

Získá řetězcové znázornění okamžitých rámců v zásobníku volání.

(Zděděno od Exception)
TargetSite

Získá metodu, která vyvolá aktuální výjimku.

(Zděděno od Exception)

Metody

Name Description
Equals(Object)

Určuje, zda je zadaný objekt roven aktuálnímu objektu.

(Zděděno od Object)
GetBaseException()

Při přepsání v odvozené třídě vrátí Exception to, že je původní příčinou jedné nebo více následných výjimek.

(Zděděno od Exception)
GetHashCode()

Slouží jako výchozí funkce hash.

(Zděděno od Object)
GetObjectData(SerializationInfo, StreamingContext)
Zastaralé.

SerializationInfo Nastaví objekt s názvem parametru a dalšími informacemi o výjimce.

GetType()

Získá typ modulu runtime aktuální instance.

(Zděděno od Exception)
MemberwiseClone()

Vytvoří mělkou kopii aktuálního Object.

(Zděděno od Object)
ThrowIfNullOrEmpty(String, String)

Vyvolá výjimku, pokud argument je nebo je null prázdná.

ThrowIfNullOrWhiteSpace(String, String)

Vyvolá výjimku, pokud argument je null, prázdná nebo se skládá pouze z prázdných znaků.

ToString()

Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky.

(Zděděno od Exception)

Událost

Name Description
SerializeObjectState
Zastaralé.

Nastane, když je výjimka serializována vytvořit objekt stavu výjimky, který obsahuje serializovaná data o výjimce.

(Zděděno od Exception)

Platí pro

Viz také