Bagikan melalui


ArgumentException Kelas

Definisi

Pengecualian yang dilemparkan ketika salah satu argumen yang diberikan ke metode tidak valid.

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
Warisan
ArgumentException
Warisan
ArgumentException
Turunan
Atribut
Penerapan

Contoh

Contoh berikut menunjukkan cara melempar dan menangkap ArgumentException. Ini menggunakan ArgumentException.GetType(). Properti nama untuk menampilkan nama objek pengecualian, dan juga menggunakan Message properti untuk menampilkan teks pesan pengecualian.

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

Keterangan

ArgumentException dilemparkan ketika metode dipanggil dan setidaknya salah satu argumen yang diteruskan tidak memenuhi spesifikasi parameter dari metode yang disebut. Properti ParamName mengidentifikasi argumen yang tidak valid.

Paling umum, dilemparkan ArgumentException oleh runtime bahasa umum atau pustaka kelas lain dan menunjukkan kesalahan pengembang. Jika Anda melempar ArgumentException dari kode, Anda harus memastikan bahwa properti pengecualian Message menyertakan pesan kesalahan yang bermakna yang menjelaskan argumen yang tidak valid dan rentang nilai yang diharapkan untuk argumen.

Kelas turunan ArgumentException utama adalah ArgumentNullException dan ArgumentOutOfRangeException. Kelas turunan ini harus digunakan alih-alih ArgumentException, kecuali dalam situasi di mana tidak ada kelas turunan yang dapat diterima. Misalnya, pengecualian harus dilemparkan oleh:

  • ArgumentNullException setiap kali null diteruskan ke metode yang tidak menerimanya sebagai argumen yang valid.

  • ArgumentOutOfRangeException ketika nilai argumen berada di luar rentang nilai yang dapat diterima; misalnya, ketika nilai "46" diteruskan sebagai argumen bulan selama pembuatan DateTime.

Jika panggilan metode tidak memiliki argumen atau jika kegagalan tidak melibatkan argumen itu sendiri, maka InvalidOperationException harus digunakan.

ArgumentException menggunakan COR_E_ARGUMENT HRESULT, yang memiliki nilai 0x80070057.

Untuk daftar nilai properti awal untuk instans ArgumentException, lihat ArgumentException konstruktor.

Di F#, Anda dapat menggunakan fungsi invalidArg untuk menghasilkan dan menaikkan ArgumentException.

Konstruktor

ArgumentException()

Menginisialisasi instans baru kelas ArgumentException.

ArgumentException(SerializationInfo, StreamingContext)
Kedaluwarsa.

Menginisialisasi instans ArgumentException baru kelas dengan data berseri.

ArgumentException(String)

Menginisialisasi instans ArgumentException baru kelas dengan pesan kesalahan tertentu.

ArgumentException(String, Exception)

Menginisialisasi instans ArgumentException baru kelas dengan pesan kesalahan tertentu dan referensi ke pengecualian dalam yang merupakan penyebab pengecualian ini.

ArgumentException(String, String)

Menginisialisasi instans ArgumentException baru kelas dengan pesan kesalahan tertentu dan nama parameter yang menyebabkan pengecualian ini.

ArgumentException(String, String, Exception)

Menginisialisasi instans ArgumentException baru kelas dengan pesan kesalahan tertentu, nama parameter, dan referensi ke pengecualian dalam yang merupakan penyebab pengecualian ini.

Properti

Data

Mendapatkan kumpulan pasangan kunci/nilai yang memberikan informasi tambahan yang ditentukan pengguna tentang pengecualian.

(Diperoleh dari Exception)
HelpLink

Mendapatkan atau mengatur tautan ke file bantuan yang terkait dengan pengecualian ini.

(Diperoleh dari Exception)
HResult

Mendapatkan atau mengatur HRESULT, nilai numerik berkode yang ditetapkan ke pengecualian tertentu.

(Diperoleh dari Exception)
InnerException

Mendapatkan instans Exception yang menyebabkan pengecualian saat ini.

(Diperoleh dari Exception)
Message

Mendapatkan pesan kesalahan dan nama parameter, atau hanya pesan kesalahan jika tidak ada nama parameter yang ditetapkan.

ParamName

Mendapatkan nama parameter yang menyebabkan pengecualian ini.

Source

Get dan set nama aplikasi atau objek yang menyebabkan kesalahan.

(Diperoleh dari Exception)
StackTrace

Mendapatkan representasi string dari bingkai langsung pada tumpukan panggilan.

(Diperoleh dari Exception)
TargetSite

Mendapatkan metode yang melemparkan pengecualian saat ini.

(Diperoleh dari Exception)

Metode

Equals(Object)

Menentukan apakah objek yang ditentukan sama dengan objek saat ini.

(Diperoleh dari Object)
GetBaseException()

Ketika ditimpa di kelas turunan Exception , mengembalikan yang merupakan akar penyebab dari satu atau beberapa pengecualian berikutnya.

(Diperoleh dari Exception)
GetHashCode()

Berfungsi sebagai fungsi hash default.

(Diperoleh dari Object)
GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

SerializationInfo Mengatur objek dengan nama parameter dan informasi pengecualian tambahan.

GetObjectData(SerializationInfo, StreamingContext)
Kedaluwarsa.

Saat ditimpa di kelas turunan SerializationInfo , mengatur dengan informasi tentang pengecualian.

(Diperoleh dari Exception)
GetType()

Mendapatkan jenis runtime dari instans saat ini.

(Diperoleh dari Exception)
MemberwiseClone()

Membuat salinan dangkal dari saat ini Object.

(Diperoleh dari Object)
ThrowIfNullOrEmpty(String, String)

Melempar pengecualian jika argument kosong atau kosong null .

ThrowIfNullOrWhiteSpace(String, String)

Melempar pengecualian jika argument adalah null, kosong, atau hanya terdiri dari karakter spasi putih.

ToString()

Membuat dan mengembalikan representasi string dari pengecualian saat ini.

(Diperoleh dari Exception)

Acara

SerializeObjectState
Kedaluwarsa.

Terjadi ketika pengecualian diserialisasikan untuk membuat objek status pengecualian yang berisi data berseri tentang pengecualian.

(Diperoleh dari Exception)

Berlaku untuk

Lihat juga