ArgumentException Classe

Definição

A exceção que é lançada quando um dos argumentos fornecidos a um método não é válido.

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
Herança
ArgumentException
Herança
ArgumentException
Derivado
Atributos
Implementações

Exemplos

O exemplo seguinte demonstra como lançar e apanhar um ArgumentException. Utiliza o ArgumentException.GetType(). A propriedade Nome para mostrar o nome do objeto exceção, e também usa essa Message propriedade para mostrar o texto da mensagem de exceção.

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

Observações

ArgumentException é lançado quando um método é invocado e pelo menos um dos argumentos passados não cumpre a especificação de parâmetros do método chamado. A ParamName propriedade identifica o argumento inválido.

Mais frequentemente, um ArgumentException é lançado pelo runtime da linguagem comum ou por outra biblioteca de classes e indica erro do programador. Se lançar um 'an ArgumentException ' do seu código, deve garantir que a propriedade da Message exceção inclui uma mensagem de erro significativa que descreva o argumento inválido e o intervalo esperado de valores para o argumento.

As classes derivadas primárias de ArgumentException são ArgumentNullException e ArgumentOutOfRangeException. Estas classes derivadas devem ser usadas em vez de ArgumentException, exceto em situações em que nenhuma das classes derivadas é aceitável. Por exemplo, exceções devem ser feitas por:

  • ArgumentNullException sempre que null é passado para um método que não o aceita como argumento válido.

  • ArgumentOutOfRangeException quando o valor de um argumento está fora do intervalo de valores aceitáveis; por exemplo, quando o valor "46" é passado como argumento do mês durante a criação de um DateTime.

Se a chamada de método não tiver qualquer argumento ou se a falha não envolver os próprios argumentos, então InvalidOperationException deve ser usada.

ArgumentException utiliza o COR_E_ARGUMENT HRESULT, que tem o valor 0x80070057.

Para obter uma lista dos valores iniciais de propriedade de uma instância de ArgumentException, consulte os construtores de ArgumentException.

Em F#, pode usar a função invalidArg para gerar e criar um ArgumentException.

Construtores

Name Description
ArgumentException()

Inicializa uma nova instância da ArgumentException classe.

ArgumentException(SerializationInfo, StreamingContext)

Inicializa uma nova instância da ArgumentException classe com dados serializados.

ArgumentException(String, Exception)

Inicializa uma nova instância da ArgumentException classe com uma mensagem de erro especificada e uma referência à exceção interna que é a causa dessa exceção.

ArgumentException(String, String, Exception)

Inicializa uma nova instância da ArgumentException classe com uma mensagem de erro especificada, o nome do parâmetro e uma referência à exceção interna que é a causa dessa exceção.

ArgumentException(String, String)

Inicializa uma nova instância da ArgumentException classe com uma mensagem de erro especificada e o nome do parâmetro que causa essa exceção.

ArgumentException(String)

Inicializa uma nova instância da ArgumentException classe com uma mensagem de erro especificada.

Propriedades

Name Description
Data

Obtém uma coleção de pares chave/valor que fornecem informação adicional definida pelo utilizador sobre a exceção.

(Herdado de Exception)
HelpLink

Obtém ou define um link para o ficheiro de ajuda associado a esta exceção.

(Herdado de Exception)
HResult

Recebe ou define HRESULT, um valor numérico codificado atribuído a uma exceção específica.

(Herdado de Exception)
InnerException

Obtém a Exception instância que causou a exceção atual.

(Herdado de Exception)
Message

Recebe a mensagem de erro e o nome do parâmetro, ou apenas a mensagem de erro se nenhum nome de parâmetro estiver definido.

ParamName

Obtém o nome do parâmetro que causa esta exceção.

Source

Obtém ou define o nome do aplicativo ou o objeto que causa o erro.

(Herdado de Exception)
StackTrace

Obtém uma representação string dos frames imediatos na stack de chamadas.

(Herdado de Exception)
TargetSite

Obtém o método que lança a exceção atual.

(Herdado de Exception)

Métodos

Name Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetBaseException()

Quando sobrescrito numa classe derivada, devolve o Exception que é a causa raiz de uma ou mais exceções subsequentes.

(Herdado de Exception)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetObjectData(SerializationInfo, StreamingContext)

Define o SerializationInfo objeto com o nome do parâmetro e informação adicional de exceção.

GetType()

Obtém o tipo de execução da instância atual.

(Herdado de Exception)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
ToString()

Cria e devolve uma representação string da exceção atual.

(Herdado de Exception)

evento

Name Description
SerializeObjectState

Ocorre quando uma exceção é serializada para criar um objeto de estado de exceção que contém dados serializados sobre a exceção.

(Herdado de Exception)

Aplica-se a

Ver também