ArgumentException Classe
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Eccezione generata quando uno degli argomenti forniti a un metodo non è valido.
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
- Ereditarietà
- Ereditarietà
- Derivato
- Attributi
- Implementazioni
Esempio
Nell'esempio seguente viene illustrato come generare e intercettare un oggetto ArgumentException. Usa ArgumentException.GetType(). Proprietà Name per visualizzare il nome dell'oggetto eccezione e usa anche la Message proprietà per visualizzare il testo del messaggio di eccezione.
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
Commenti
ArgumentException viene generata quando viene richiamato un metodo e almeno uno degli argomenti passati non soddisfa la specifica del parametro del metodo chiamato. La ParamName proprietà identifica l'argomento non valido.
In genere, un oggetto ArgumentException viene generato da Common Language Runtime o da un'altra libreria di classi e indica l'errore dello sviluppatore. Se si genera un'eccezione ArgumentException dal codice, è necessario assicurarsi che la proprietà dell'eccezione Message includa un messaggio di errore significativo che descrive l'argomento non valido e l'intervallo di valori previsto per l'argomento.
Le classi derivate primarie di ArgumentException sono ArgumentNullException e ArgumentOutOfRangeException. Queste classi derivate devono essere usate invece di ArgumentException, tranne nelle situazioni in cui nessuna delle classi derivate è accettabile. Ad esempio, le eccezioni devono essere generate da:
ArgumentNullException ogni volta che
nullviene passato a un metodo che non lo accetta come argomento valido.ArgumentOutOfRangeException quando il valore di un argomento non rientra nell'intervallo di valori accettabili; ad esempio, quando il valore "46" viene passato come argomento month durante la creazione di un oggetto DateTime.
Se la chiamata al metodo non dispone di alcun argomento o se l'errore non include gli argomenti stessi, InvalidOperationException deve essere utilizzato.
ArgumentException usa il COR_E_ARGUMENT HRESULT, che ha il valore 0x80070057.
Per un elenco dei valori iniziali delle proprietà per un'istanza di ArgumentException, consultare i costruttori di ArgumentException.
In F# è possibile usare la funzione invalidArg per generare e generare un'eccezione ArgumentException.
Costruttori
| Nome | Descrizione |
|---|---|
| ArgumentException() |
Inizializza una nuova istanza della classe ArgumentException. |
| ArgumentException(SerializationInfo, StreamingContext) |
Obsoleti.
Inizializza una nuova istanza della ArgumentException classe con dati serializzati. |
| ArgumentException(String, Exception) |
Inizializza una nuova istanza della ArgumentException classe con un messaggio di errore specificato e un riferimento all'eccezione interna che è la causa di questa eccezione. |
| ArgumentException(String, String, Exception) |
Inizializza una nuova istanza della ArgumentException classe con un messaggio di errore specificato, il nome del parametro e un riferimento all'eccezione interna che è la causa di questa eccezione. |
| ArgumentException(String, String) |
Inizializza una nuova istanza della ArgumentException classe con un messaggio di errore specificato e il nome del parametro che causa questa eccezione. |
| ArgumentException(String) |
Inizializza una nuova istanza della ArgumentException classe con un messaggio di errore specificato. |
Proprietà
| Nome | Descrizione |
|---|---|
| Data |
Ottiene una raccolta di coppie chiave/valore che forniscono informazioni aggiuntive definite dall'utente sull'eccezione. (Ereditato da Exception) |
| HelpLink |
Ottiene o imposta un collegamento al file della Guida associato a questa eccezione. (Ereditato da Exception) |
| HResult |
Ottiene o imposta HRESULT, valore numerico codificato assegnato a un'eccezione specifica. (Ereditato da Exception) |
| InnerException |
Ottiene l'istanza Exception che ha causato l'eccezione corrente. (Ereditato da Exception) |
| Message |
Ottiene il messaggio di errore e il nome del parametro oppure solo il messaggio di errore se non è impostato alcun nome di parametro. |
| ParamName |
Ottiene il nome del parametro che causa questa eccezione. |
| Source |
Ottiene o imposta il nome dell'applicazione o dell'oggetto che causa l'errore. (Ereditato da Exception) |
| StackTrace |
Ottiene una rappresentazione di stringa dei fotogrammi immediati nello stack di chiamate. (Ereditato da Exception) |
| TargetSite |
Ottiene il metodo che genera l'eccezione corrente. (Ereditato da Exception) |
Metodi
| Nome | Descrizione |
|---|---|
| Equals(Object) |
Determina se l'oggetto specificato è uguale all'oggetto corrente. (Ereditato da Object) |
| GetBaseException() |
Quando sottoposto a override in una classe derivata, restituisce l'oggetto Exception che rappresenta la causa radice di una o più eccezioni successive. (Ereditato da Exception) |
| GetHashCode() |
Funge da funzione hash predefinita. (Ereditato da Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Obsoleti.
Imposta l'oggetto SerializationInfo con il nome del parametro e informazioni aggiuntive sull'eccezione. |
| GetType() |
Ottiene il tipo di runtime dell'istanza corrente. (Ereditato da Exception) |
| MemberwiseClone() |
Crea una copia superficiale del Objectcorrente. (Ereditato da Object) |
| ThrowIfNullOrEmpty(String, String) |
Genera un'eccezione se |
| ThrowIfNullOrWhiteSpace(String, String) |
Genera un'eccezione se |
| ToString() |
Crea e restituisce una rappresentazione di stringa dell'eccezione corrente. (Ereditato da Exception) |
Eventi
| Nome | Descrizione |
|---|---|
| SerializeObjectState |
Obsoleti.
Si verifica quando viene serializzata un'eccezione per creare un oggetto stato dell'eccezione contenente dati serializzati sull'eccezione. (Ereditato da Exception) |