ArgumentException Klasse
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Die Ausnahme, die ausgelöst wird, wenn eines der Argumente für eine Methode ungültig ist.
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
- Vererbung
- Vererbung
- Abgeleitet
- Attribute
- Implementiert
Beispiele
Im folgenden Beispiel wird veranschaulicht, wie ein ausgelöst und fangen wird ArgumentException. Es verwendet argumentException.GetType(). Name-Eigenschaft , um den Namen des Ausnahmeobjekts anzuzeigen, und verwendet auch die Message -Eigenschaft, um den Text der Ausnahmemeldung anzuzeigen.
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
Hinweise
ArgumentException wird ausgelöst, wenn eine Methode aufgerufen wird und mindestens eines der übergebenen Argumente die Parameterspezifikation der aufgerufenen Methode nicht erfüllt. Die ParamName -Eigenschaft identifiziert das ungültige Argument.
Am häufigsten wird ein ArgumentException von der Common Language Runtime oder einer anderen Klassenbibliothek ausgelöst und gibt einen Entwicklerfehler an. Wenn Sie einen ArgumentException aus Ihrem Code auslösen, sollten Sie sicherstellen, dass die Eigenschaft der Ausnahme Message eine aussagekräftige Fehlermeldung enthält, die das ungültige Argument und den erwarteten Wertebereich für das Argument beschreibt.
Die primären abgeleiteten Klassen von ArgumentException sind ArgumentNullException und ArgumentOutOfRangeException. Diese abgeleiteten Klassen sollten anstelle von ArgumentExceptionverwendet werden, außer in Situationen, in denen keine der abgeleiteten Klassen akzeptabel ist. Ausnahmen sollten beispielsweise ausgelöst werden durch:
ArgumentNullException wenn
null
an eine Methode übergeben wird, die sie nicht als gültiges Argument akzeptiert.ArgumentOutOfRangeException , wenn der Wert eines Arguments außerhalb des Bereichs zulässiger Werte liegt; beispielsweise, wenn der Wert "46" während der Erstellung eines DateTimeals Monatsargument übergeben wird.
Wenn der Methodenaufruf über kein Argument verfügt oder wenn der Fehler nicht die Argumente selbst umfasst, sollte verwendet InvalidOperationException werden.
ArgumentException verwendet die HRESULT-COR_E_ARGUMENT, die den Wert 0x80070057 hat.
Eine Liste der anfänglichen Eigenschaftswerte für eine Instanz von ArgumentException, finden Sie unter den ArgumentException Konstruktoren.
In F# können Sie die invalidArg-Funktion verwenden, um eine ArgumentException zu generieren und auszulösen.
Konstruktoren
ArgumentException() |
Initialisiert eine neue Instanz der ArgumentException-Klasse. |
ArgumentException(SerializationInfo, StreamingContext) |
Veraltet.
Initialisiert eine neue Instanz der ArgumentException-Klasse mit serialisierten Daten. |
ArgumentException(String) |
Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung. |
ArgumentException(String, Exception) |
Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung und einem Verweis auf die innere Ausnahme, die diese Ausnahme ausgelöst hat. |
ArgumentException(String, String) |
Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung und dem Namen des Parameters, der die Ausnahme auslöst. |
ArgumentException(String, String, Exception) |
Initialisiert eine neue Instanz der ArgumentException-Klasse mit einer angegebenen Fehlermeldung, dem Parameternamen und einem Verweis auf die innere Ausnahme, die diese Ausnahme verursacht hat. |
Eigenschaften
Data |
Ruft eine Auflistung von Schlüssel-Wert-Paaren ab, die zusätzliche benutzerdefinierte Informationen zur Ausnahme bereitstellen. (Geerbt von Exception) |
HelpLink |
Ruft einen Link zur Hilfedatei ab, die dieser Ausnahme zugeordnet ist, oder legt einen Link fest. (Geerbt von Exception) |
HResult |
Ruft HRESULT ab oder legt HRESULT fest. Dies ist ein codierter Wert, der einer bestimmten Ausnahme zugeordnet ist. (Geerbt von Exception) |
InnerException |
Ruft die Exception-Instanz ab, die die aktuelle Ausnahme verursacht hat. (Geerbt von Exception) |
Message |
Ruft die Fehlermeldung und den Parameternamen oder nur die Fehlermeldung ab, wenn kein Parametername festgelegt ist. |
ParamName |
Ruft den Namen des Parameters ab, der diese Ausnahme auslöst. |
Source |
Gibt den Namen der Anwendung oder des Objekts zurück, die bzw. das den Fehler verursacht hat, oder legt diesen fest. (Geerbt von Exception) |
StackTrace |
Ruft eine Zeichenfolgendarstellung der unmittelbaren Frames in der Aufrufliste ab. (Geerbt von Exception) |
TargetSite |
Ruft die Methode ab, die die aktuelle Ausnahme auslöst. (Geerbt von Exception) |
Methoden
Equals(Object) |
Bestimmt, ob das angegebene Objekt gleich dem aktuellen Objekt ist. (Geerbt von Object) |
GetBaseException() |
Gibt beim Überschreiben in einer abgeleiteten Klasse eine Exception zurück, die die Grundursache für eine oder mehrere nachfolgende Ausnahmen ist. (Geerbt von Exception) |
GetHashCode() |
Fungiert als Standardhashfunktion. (Geerbt von Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Veraltet.
Legt das SerializationInfo-Objekt mit dem Parameternamen und zusätzlichen Informationen zur Ausnahme fest. |
GetObjectData(SerializationInfo, StreamingContext) |
Veraltet.
Legt beim Überschreiben in einer abgeleiteten Klasse die SerializationInfo mit Informationen über die Ausnahme fest. (Geerbt von Exception) |
GetType() |
Ruft den Laufzeittyp der aktuellen Instanz ab. (Geerbt von Exception) |
MemberwiseClone() |
Erstellt eine flache Kopie des aktuellen Object. (Geerbt von Object) |
ThrowIfNullOrEmpty(String, String) |
Löst eine Ausnahme aus, wenn |
ThrowIfNullOrWhiteSpace(String, String) |
Löst eine Ausnahme aus, wenn |
ToString() |
Erstellt eine Zeichenfolgendarstellung der aktuellen Ausnahme und gibt diese zurück. (Geerbt von Exception) |
Ereignisse
SerializeObjectState |
Veraltet.
Tritt auf, wenn eine Ausnahme serialisiert wird, um ein Ausnahmezustandsobjekt mit serialisierten Daten über die Ausnahme zu erstellen. (Geerbt von Exception) |