ArgumentException Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Exception levée quand un argument non valide est fourni à une méthode.
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
- Héritage
- Héritage
- Dérivé
- Attributs
- Implémente
Exemples
L’exemple suivant montre comment lever et intercepter un ArgumentException. Il utilise ArgumentException.GetType(). Propriété Name pour afficher le nom de l’objet exception et utilise également la Message propriété pour afficher le texte du message d’exception.
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
Remarques
ArgumentException est levée lorsqu’une méthode est appelée et qu’au moins l’un des arguments passés ne répond pas à la spécification de paramètre de la méthode appelée. La ParamName propriété identifie l’argument non valide.
Le plus souvent, un ArgumentException est levée par le Common Language Runtime ou une autre bibliothèque de classes et indique une erreur de développeur. Si vous lèvez un ArgumentException à partir de votre code, vous devez vous assurer que la propriété de Message l’exception inclut un message d’erreur significatif qui décrit l’argument non valide et la plage de valeurs attendues pour l’argument.
Les classes dérivées principales de ArgumentException sont ArgumentNullException et ArgumentOutOfRangeException. Ces classes dérivées doivent être utilisées à la place de ArgumentException, sauf dans les situations où aucune des classes dérivées n’est acceptable. Par exemple, les exceptions doivent être levées par :
ArgumentNullException chaque fois que
null
est passé à une méthode qui ne l’accepte pas comme argument valide.ArgumentOutOfRangeException lorsque la valeur d’un argument est en dehors de la plage de valeurs acceptables ; par exemple, lorsque la valeur « 46 » est passée en tant qu’argument mois lors de la création d’un DateTime.
Si l’appel de méthode n’a pas d’argument ou si l’échec n’implique pas les arguments eux-mêmes, InvalidOperationException vous devez l’utiliser.
ArgumentException utilise le COR_E_ARGUMENT HRESULT, qui a la valeur 0x80070057.
Pour obtenir la liste des valeurs initiales des propriétés d’une instance de ArgumentException, consultez le ArgumentException constructeurs.
Dans F#, vous pouvez utiliser la fonction invalidArg pour générer et déclencher une exception ArgumentException.
Constructeurs
ArgumentException() |
Initialise une nouvelle instance de la classe ArgumentException. |
ArgumentException(SerializationInfo, StreamingContext) |
Obsolète.
Initialise une nouvelle instance de la classe ArgumentException avec des données sérialisées. |
ArgumentException(String) |
Initialise une nouvelle instance de la classe ArgumentException avec un message d'erreur spécifié. |
ArgumentException(String, Exception) |
Initialise une nouvelle instance de la classe ArgumentException avec un message d'erreur spécifié et une référence à l'exception interne ayant provoqué cette exception. |
ArgumentException(String, String) |
Initialise une nouvelle instance de la classe ArgumentException avec un message d’erreur spécifié et le nom du paramètre ayant provoqué cette exception. |
ArgumentException(String, String, Exception) |
Initialise une nouvelle instance de la classe ArgumentException avec un message d’erreur spécifié, le nom du paramètre et une référence à l’exception interne ayant provoqué cette exception. |
Propriétés
Data |
Obtient une collection de paires clé/valeur qui fournissent des informations définies par l'utilisateur supplémentaires sur l'exception. (Hérité de Exception) |
HelpLink |
Obtient ou définit un lien vers le fichier d'aide associé à cette exception. (Hérité de Exception) |
HResult |
Obtient ou définit HRESULT, valeur numérique codée qui est assignée à une exception spécifique. (Hérité de Exception) |
InnerException |
Obtient l'instance Exception qui a provoqué l'exception actuelle. (Hérité de Exception) |
Message |
Obtient le message d'erreur et le nom du paramètre, ou le message d'erreur uniquement si aucun nom de paramètre n'a été défini. |
ParamName |
Obtient le nom du paramètre qui a provoqué cette exception. |
Source |
Obtient ou définit le nom de l'application ou de l'objet qui est à l'origine de l'erreur. (Hérité de Exception) |
StackTrace |
Obtient une représentation sous forme de chaîne des frames immédiats sur la pile des appels. (Hérité de Exception) |
TargetSite |
Obtient la méthode qui lève l'exception actuelle. (Hérité de Exception) |
Méthodes
Equals(Object) |
Détermine si l'objet spécifié est égal à l'objet actuel. (Hérité de Object) |
GetBaseException() |
En cas de substitution dans une classe dérivée, retourne la Exception qui est à l'origine d'une ou de plusieurs exceptions ultérieures. (Hérité de Exception) |
GetHashCode() |
Fait office de fonction de hachage par défaut. (Hérité de Object) |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
Définit l'objet SerializationInfo avec le nom du paramètre et d'autres informations se rapportant à l'exception. |
GetObjectData(SerializationInfo, StreamingContext) |
Obsolète.
En cas de substitution dans une classe dérivée, définit SerializationInfo avec des informations sur l'exception. (Hérité de Exception) |
GetType() |
Obtient le type au moment de l'exécution de l'instance actuelle. (Hérité de Exception) |
MemberwiseClone() |
Crée une copie superficielle du Object actuel. (Hérité de Object) |
ThrowIfNullOrEmpty(String, String) |
Lève une exception si |
ThrowIfNullOrWhiteSpace(String, String) |
Lève une exception si |
ToString() |
Crée et retourne une chaîne représentant l'exception actuelle. (Hérité de Exception) |
Événements
SerializeObjectState |
Obsolète.
Se produit quand une exception est sérialisée pour créer un objet d'état d'exception qui contient des données sérialisées concernant l'exception. (Hérité de Exception) |