ArgumentException クラス
アセンブリ: mscorlib (mscorlib.dll 内)

<SerializableAttribute> _ <ComVisibleAttribute(True)> _ Public Class ArgumentException Inherits SystemException Implements ISerializable
[SerializableAttribute] [ComVisibleAttribute(true)] public class ArgumentException : SystemException, ISerializable
[SerializableAttribute] [ComVisibleAttribute(true)] public ref class ArgumentException : public SystemException, ISerializable
/** @attribute SerializableAttribute() */ /** @attribute ComVisibleAttribute(true) */ public class ArgumentException extends SystemException implements ISerializable
SerializableAttribute ComVisibleAttribute(true) public class ArgumentException extends SystemException implements ISerializable

ArgumentException は、メソッドの呼び出し時に渡された引数の少なくとも 1 つが、呼び出されたメソッドのパラメータの仕様に一致していないとスローされます。ArgumentException のすべてのインスタンスは、無効な引数と、その引数に指定できる有効な値の範囲を説明する、わかりやすいエラーメッセージを保持する必要があります。
ArgumentException の主要な派生クラスは、ArgumentNullException と ArgumentOutOfRangeException です。これらの派生クラスは、両方とも使用できない場合以外は、ArgumentException の代わりに使用されます。たとえば、次の場合は、それぞれの派生クラスで例外をスローします。
-
null 参照 (Visual Basic では Nothing) を有効な引数として受け付けないメソッドに null 値が渡された場合は、必ず ArgumentNullException を使用します。
-
指定できる範囲を外れた値が引数として渡された場合は、ArgumentOutOfRangeException を使用します。たとえば、DateTime の作成時に、月を指定する引数として "46" という値が渡された場合が該当します。
引数を指定せずにメソッドが呼び出された場合、引数が原因ではないエラーが発生している場合は、InvalidOperationException を使用します。
ArgumentException は、値 0x80070057 を保持する HRESULT COR_E_ARGUMENT を使用します。
ArgumentException のインスタンスの初期プロパティ値の一覧については、ArgumentException コンストラクタのトピックを参照してください。

ArgumentException をスローし、キャッチする方法を次の例に示します。
using System; public sealed class App { static void Main() { // ArgumentException is not thrown because 10 is an even number. Console.WriteLine("10 divided by 2 is {0}", DivideByTwo(10)); try { // ArgumentException is thrown because 7 is not an even number. Console.WriteLine("7 divided by 2 is {0}", DivideByTwo(7)); } catch (ArgumentException) { // Show the user that 7 cannot be divided by 2. Console.WriteLine("7 is not divided by 2 integrally."); } } static int DivideByTwo(int num) { // If num is an odd number, throw an ArgumentException. if ((num & 1) == 1) throw new ArgumentException("Number must be even", "num"); // num is even, return half of its value. return num / 2; } } // This code produces the following output. // // 10 divided by 2 is 5 // 7 is not divided by 2 integrally.
using namespace System; int DivideByTwo(int num) { // If num is an odd number, throw an ArgumentException. if ((num & 1) == 1) { throw gcnew ArgumentException("Number must be even", "num"); } // num is even, return half of its value. return num / 2; } int main() { // ArgumentException is not thrown because 10 is an even number. Console::WriteLine("10 divided by 2 is {0}", DivideByTwo(10)); try { // ArgumentException is thrown because 7 is not an even number. Console::WriteLine("7 divided by 2 is {0}", DivideByTwo(7)); } catch (ArgumentException^) { // Show the user that 7 cannot be divided by 2. Console::WriteLine("7 is not divided by 2 integrally."); } } // This code produces the following output. // // 10 divided by 2 is 5 // 7 is not divided by 2 integrally.



Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。


- ArgumentException クラスのページへのリンク