ArgumentException Třída
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Výjimka, která se vyvolá, když některý z argumentů zadaných 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
- Dědičnost
- Odvozené
- Atributy
- Implementuje
Příklady
Následující příklad ukazuje, jak hodit a zachytit ArgumentException. Používá ArgumentException.GetType(). Vlastnost Name k zobrazení názvu objektu výjimky a také používá Message vlastnost k zobrazení textu zprávy výjimky.
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
Poznámky
ArgumentException vyvolána při vyvolání metody a alespoň jeden z předaných argumentů nesplňuje specifikaci parametru volané metody. Vlastnost ParamName identifikuje neplatný argument.
ArgumentException Nejčastěji je vyvolán modulem CLR (Common Language Runtime) nebo jinou knihovnou tříd a označuje chybu vývojáře. Pokud vyvoláte kód, měli byste ArgumentException 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 , s ArgumentExceptionvýjimkou situací, kdy není žádná z odvozených tříd přijatelná. Například výjimky by měly být vyvolán takto:
ArgumentNullException kdykoli
null
se předá 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í DateTimesouboru .
Pokud volání metody nemá žádný argument nebo pokud selhání nezahrnuje samotné argumenty, InvalidOperationException měli byste použít.
ArgumentException používá COR_E_ARGUMENT HRESULT, který má hodnotu 0x80070057.
Seznam počátečních hodnot vlastností pro instanci ArgumentExceptionnaleznete v ArgumentException konstruktorech.
V jazyce F# můžete použít neplatnou funkci Arg k vygenerování a vyvolání argumentuException.
Konstruktory
ArgumentException() |
Inicializuje novou instanci ArgumentException třídy. |
ArgumentException(SerializationInfo, StreamingContext) |
Inicializuje novou instanci třídy ArgumentException se serializovanými daty. |
ArgumentException(String) |
Inicializuje novou instanci třídy se zadanou chybovou ArgumentException zprávou. |
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) |
Inicializuje novou instanci ArgumentException třídy se zadanou chybovou zprávou a názvem parametru, který způsobuje tuto výjimku. |
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. |
Vlastnosti
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 přiřazenou 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
Equals(Object) |
Určí, zda se zadaný objekt rovná aktuálnímu objektu. (Zděděno od Object) |
GetBaseException() |
Při přepsání v odvozené třídě vrátí Exception hodnotu, která je hlavní 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) |
SerializationInfo Nastaví objekt s názvem parametru a dalšími informacemi o výjimce. |
GetObjectData(SerializationInfo, StreamingContext) |
Při přepsání v odvozené třídě nastaví s SerializationInfo informacemi o výjimce. (Zděděno od Exception) |
GetType() |
Získá typ modulu runtime aktuální instance. (Zděděno od Exception) |
MemberwiseClone() |
Vytvoří použádnou kopii aktuálního souboru Object. (Zděděno od Object) |
ThrowIfNullOrEmpty(String, String) |
Vyvolá výjimku, pokud |
ToString() |
Vytvoří a vrátí řetězcovou reprezentaci aktuální výjimky. (Zděděno od Exception) |
událost
SerializeObjectState |
Zastaralé.
Nastane, když je výjimka serializována k vytvoření objektu stavu výjimky, který obsahuje serializovaná data o výjimce. (Zděděno od Exception) |