ArgumentException クラス

定義

メソッドに渡された引数のいずれかが無効な場合にスローされる例外。

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
継承
ArgumentException
継承
ArgumentException
派生
属性
実装

次の例では、 をスローしてキャッチする方法を ArgumentException示します。 ArgumentException.GetType() を使用します。Name プロパティは例外オブジェクトの名前を表示し、 プロパティをMessage使用して例外メッセージのテキストを表示します。

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

注釈

ArgumentException は、メソッドが呼び出され、渡された引数の少なくとも 1 つが、呼び出されたメソッドのパラメーター指定を満たしていない場合にスローされます。 プロパティは ParamName 、無効な引数を識別します。

最も一般的に、 ArgumentException は共通言語ランタイムまたは別のクラス ライブラリによってスローされ、開発者エラーを示します。 コードから を ArgumentException スローする場合は、例外の Message プロパティに、無効な引数と引数の予期される値の範囲を説明する意味のあるエラー メッセージが含まれていることを確認する必要があります。

の主な派生クラスArgumentExceptionは と ArgumentOutOfRangeExceptionですArgumentNullException。 これらの派生クラスは、 の代わりに ArgumentException使用する必要があります。ただし、どちらの派生クラスも許容できない場合を除きます。 たとえば、例外は次の方法でスローする必要があります。

  • ArgumentNullException を有効な引数として受け入れないメソッドに渡す場合は常 null に。

  • ArgumentOutOfRangeException 引数の値が許容範囲外の場合。たとえば、 の作成時に値 "46" が month 引数として渡された場合などです DateTime

メソッド呼び出しに引数がない場合、またはエラーに引数自体が含まれていない場合は、 を InvalidOperationException 使用する必要があります。

ArgumentException では、値が0x80070057された HRESULT COR_E_ARGUMENTを使用します。

インスタンスの初期プロパティ値の一覧についてはArgumentExceptionを参照してください、ArgumentExceptionコンス トラクター。

F# では、 invalidArg 関数を使用して ArgumentException を生成および発生させることができます。

コンストラクター

ArgumentException()

ArgumentException クラスの新しいインスタンスを初期化します。

ArgumentException(SerializationInfo, StreamingContext)
古い.

シリアル化したデータを使用して、ArgumentException クラスの新しいインスタンスを初期化します。

ArgumentException(String)

指定したエラー メッセージを使用して、ArgumentException クラスの新しいインスタンスを初期化します。

ArgumentException(String, Exception)

指定したエラー メッセージおよびこの例外の原因となった内部例外への参照を使用して、ArgumentException クラスの新しいインスタンスを初期化します。

ArgumentException(String, String)

エラー メッセージ、およびこの例外の原因であるパラメーターの名前を指定して、ArgumentException クラスの新しいインスタンスを初期化します。

ArgumentException(String, String, Exception)

エラー メッセージ、パラメーター名、およびこの例外の原因である内部例外への参照を指定して、ArgumentException クラスの新しいインスタンスを初期化します。

プロパティ

Data

例外に関する追加のユーザー定義情報を提供する、キーと値のペアのコレクションを取得します。

(継承元 Exception)
HelpLink

この例外に関連付けられているヘルプ ファイルへのリンクを取得または設定します。

(継承元 Exception)
HResult

特定の例外に割り当てられているコード化数値である HRESULT を取得または設定します。

(継承元 Exception)
InnerException

現在の例外の原因となる Exception インスタンスを取得します。

(継承元 Exception)
Message

エラー メッセージとパラメーター名を取得します。パラメーター名が設定されていない場合は、エラー メッセージだけを取得します。

ParamName

この例外の原因である引数の名前を取得します。

Source

エラーの原因となるアプリケーションまたはオブジェクトの名前を取得または設定します。

(継承元 Exception)
StackTrace

呼び出し履歴で直前のフレームの文字列形式を取得します。

(継承元 Exception)
TargetSite

現在の例外がスローされたメソッドを取得します。

(継承元 Exception)

メソッド

Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
GetBaseException()

派生クラスでオーバーライドされた場合、それ以後に発生する 1 つ以上の例外の根本原因である Exception を返します。

(継承元 Exception)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetObjectData(SerializationInfo, StreamingContext)
古い.

パラメーター名と追加の例外情報を使用して SerializationInfo オブジェクトを設定します。

GetObjectData(SerializationInfo, StreamingContext)
古い.

派生クラスでオーバーライドされた場合は、その例外に関する情報を使用して SerializationInfo を設定します。

(継承元 Exception)
GetType()

現在のインスタンスのランタイム型を取得します。

(継承元 Exception)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
ThrowIfNullOrEmpty(String, String)

が または空の場合 argumentnull 、例外をスローします。

ThrowIfNullOrWhiteSpace(String, String)

nullの場合、空の場合、または空白文字のみで構成されている場合argumentは、例外をスローします。

ToString()

現在の例外の文字列形式を作成して返します。

(継承元 Exception)

イベント

SerializeObjectState
古い.

例外がシリアル化され、例外に関するシリアル化されたデータを含む例外状態オブジェクトが作成されたときに発生します。

(継承元 Exception)

適用対象

こちらもご覧ください