ArgumentException Klass
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Undantaget som utlöses när ett av argumenten som tillhandahålls till en metod inte är giltigt.
public ref class ArgumentException : Exception
public ref class ArgumentException : SystemException
public class ArgumentException : Exception
[System.Serializable]
public class ArgumentException : SystemException
[System.Serializable]
[System.Runtime.InteropServices.ComVisible(true)]
public class ArgumentException : SystemException
public class ArgumentException : SystemException
type ArgumentException = class
inherit Exception
[<System.Serializable>]
type ArgumentException = class
inherit SystemException
interface ISerializable
[<System.Serializable>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type ArgumentException = class
inherit SystemException
interface ISerializable
type ArgumentException = class
inherit SystemException
interface ISerializable
type ArgumentException = class
inherit SystemException
Public Class ArgumentException
Inherits Exception
Public Class ArgumentException
Inherits SystemException
- Arv
- Arv
- Härledda
- Attribut
- Implementeringar
Exempel
I följande exempel visas hur du genererar och fångar en ArgumentException. Den använder ArgumentException.GetType(). Namnegenskap för att visa namnet på undantagsobjektet och använder Message även egenskapen för att visa texten i undantagsmeddelandet.
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
Kommentarer
ArgumentException genereras när en metod anropas och minst ett av de skickade argumenten inte uppfyller parameterspecifikationen för den anropade metoden. Egenskapen ParamName identifierar det ogiltiga argumentet.
Oftast genereras en ArgumentException av den vanliga språkkörningen eller ett annat klassbibliotek och anger utvecklarfel. Om du genererar en ArgumentException från koden bör du se till att undantagets Message egenskap innehåller ett meningsfullt felmeddelande som beskriver det ogiltiga argumentet och det förväntade värdeintervallet för argumentet.
De primära härledda klasserna ArgumentException för är ArgumentNullException och ArgumentOutOfRangeException. Dessa härledda klasser bör användas i stället för ArgumentException, förutom i situationer där ingen av de härledda klasserna är acceptabel. Undantag bör till exempel genereras av:
ArgumentNullException när
nullskickas till en metod som inte accepterar den som ett giltigt argument.ArgumentOutOfRangeException när värdet för ett argument ligger utanför intervallet för acceptabla värden. Till exempel när värdet "46" skickas som månadsargument när en DateTime.
Om metodanropet inte har något argument eller om felet inte omfattar själva argumenten ska det InvalidOperationException användas.
ArgumentException använder HRESULT-COR_E_ARGUMENT, som har värdet 0x80070057.
För en lista över inledande egenskapsvärden för en instans av ArgumentException, se i ArgumentException-konstruktorn.
I F#kan du använda funktionen invalidArg för att generera och skapa ett ArgumentException.
Konstruktorer
| Name | Description |
|---|---|
| ArgumentException() |
Initierar en ny instans av ArgumentException klassen. |
| ArgumentException(SerializationInfo, StreamingContext) |
Initierar en ny instans av ArgumentException klassen med serialiserade data. |
| ArgumentException(String, Exception) |
Initierar en ny instans av ArgumentException klassen med ett angivet felmeddelande och en referens till det inre undantaget som är orsaken till det här undantaget. |
| ArgumentException(String, String, Exception) |
Initierar en ny instans av ArgumentException klassen med ett angivet felmeddelande, parameternamnet och en referens till det inre undantaget som är orsaken till det här undantaget. |
| ArgumentException(String, String) |
Initierar en ny instans av ArgumentException klassen med ett angivet felmeddelande och namnet på parametern som orsakar det här undantaget. |
| ArgumentException(String) |
Initierar en ny instans av ArgumentException klassen med ett angivet felmeddelande. |
Egenskaper
| Name | Description |
|---|---|
| Data |
Hämtar en samling nyckel/värde-par som ger ytterligare användardefinierad information om undantaget. (Ärvd från Exception) |
| HelpLink |
Hämtar eller anger en länk till hjälpfilen som är associerad med det här undantaget. (Ärvd från Exception) |
| HResult |
Hämtar eller anger HRESULT, ett kodat numeriskt värde som har tilldelats ett specifikt undantag. (Ärvd från Exception) |
| InnerException |
Hämtar den Exception instans som orsakade det aktuella undantaget. (Ärvd från Exception) |
| Message |
Hämtar felmeddelandet och parameternamnet, eller bara felmeddelandet om inget parameternamn har angetts. |
| ParamName |
Hämtar namnet på parametern som orsakar det här undantaget. |
| Source |
Hämtar eller anger namnet på programmet eller objektet som orsakar felet. (Ärvd från Exception) |
| StackTrace |
Hämtar en strängrepresentation av de omedelbara ramarna i anropsstacken. (Ärvd från Exception) |
| TargetSite |
Hämtar den metod som utlöser det aktuella undantaget. (Ärvd från Exception) |
Metoder
| Name | Description |
|---|---|
| Equals(Object) |
Avgör om det angivna objektet är lika med det aktuella objektet. (Ärvd från Object) |
| GetBaseException() |
När den åsidosätts i en härledd klass returnerar den Exception som är rotorsaken till ett eller flera efterföljande undantag. (Ärvd från Exception) |
| GetHashCode() |
Fungerar som standard-hash-funktion. (Ärvd från Object) |
| GetObjectData(SerializationInfo, StreamingContext) |
Anger objektet SerializationInfo med parameternamnet och ytterligare undantagsinformation. |
| GetType() |
Hämtar körningstypen för den aktuella instansen. (Ärvd från Exception) |
| MemberwiseClone() |
Skapar en ytlig kopia av den aktuella Object. (Ärvd från Object) |
| ToString() |
Skapar och returnerar en strängrepresentation av det aktuella undantaget. (Ärvd från Exception) |
Händelser
| Name | Description |
|---|---|
| SerializeObjectState |
Inträffar när ett undantag serialiseras för att skapa ett undantagstillståndsobjekt som innehåller serialiserade data om undantaget. (Ärvd från Exception) |