System.ArgumentException 类

方法描述

在向方法提供的其中一个参数无效时引发的异常。

语法定义(C# System.ArgumentException 类 的用法)

[SerializableAttribute]
[ComVisibleAttribute(true)]
public class ArgumentException : SystemException, 
	ISerializable

构造函数

构造函数名称 构造函数描述
ArgumentException() 初始化 ArgumentException 类的新实例。
ArgumentException(String) 使用指定错误消息初始化 ArgumentException 类的新实例。
ArgumentException(SerializationInfo, StreamingContext) 用序列化数据初始化 ArgumentException 类的新实例。
ArgumentException(String, Exception) 使用指定错误消息和对作为此异常原因的内部异常的引用来初始化 ArgumentException 类的新实例。
ArgumentException(String, String) 使用指定错误消息和导致此异常的参数的名称来初始化 ArgumentException 类的新实例。
ArgumentException(String, String, Exception) 使用指定错误消息、参数名和对内部异常(为该异常根源)的引用来初始化 ArgumentException 类的新实例。

成员/方法

方法名称 方法描述
Equals(Object) 确定指定的 Object 是否等于当前的 Object。 (继承自 Object。)
Finalize 允许对象在“垃圾回收”回收之前尝试释放资源并执行其他清理操作。 (继承自 Object。)
GetBaseException 当在派生类中重写时,返回 Exception,它是一个或多个并发的异常的根源。 (继承自 Exception。)
GetHashCode 用作特定类型的哈希函数。 (继承自 Object。)
GetObjectData 设置带有参数名和附加异常信息的 SerializationInfo 对象。 (重写 Exception.GetObjectData(SerializationInfo, StreamingContext)。)
GetType 获取当前实例的运行时类型。 (继承自 Exception。) 在 XNA Framework3.0GetType()。 在 GetType()。
MemberwiseClone 创建当前 Object 的浅表副本。 (继承自 Object。)
ToString 创建并返回当前异常的字符串表示形式。 (继承自 Exception。)

提示和注释

在调用某方法但传递的参数中至少有一个不符合所调用方法的参数规范时,将引发 ArgumentException。 ArgumentException 的所有实例均应带有有意义的错误消息,描述无效参数以及该参数所需的值范围。

ArgumentException 的主要派生类有 ArgumentNullException 和 ArgumentOutOfRangeException。 应使用这两种派生类取代 ArgumentException,除非这两种派生类都不被接受。 例如:

每当向方法传递 null 而该方法不把它作为有效参数接受时,应由 ArgumentNullException 引发异常。

当参数值超出可接受值的范围(例如,在创建 DateTime 时将值“46”作为月份参数传递)时,应由 ArgumentOutOfRangeException 引发异常。

如果方法调用没有任何参数,或者失败未涉及参数本身,则应当使用 InvalidOperationException 引发异常。

ArgumentException 使用值为 0x80070057 的 HRESULT COR_E_ARGUMENT。

有关 ArgumentException 实例的初始属性值列表,请参见 ArgumentException 构造函数。

System.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.

继承层次结构

System.Object

System.Exception

System.SystemException

System.ArgumentException

更多...

命名空间

namespace: System

程序集: mscorlib(在 mscorlib.dll 中)

线程安全

此类型的任何公共 static(在 Visual Basic 中为 Shared) 成员都是线程安全的。但不保证所有实例成员都是线程安全的。

版本信息

.NET Framework 受以下版本支持:4、3.5、3.0、2.0、1.1、1.0 .NET Framework Client Profile 受以下版本支持:4、3.5 SP1 受以下版本支持:

适用平台

Windows 7, Windows Vista SP1 或更高版本, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008(不支持服务器核心), Windows Server 2008 R2(支持 SP1 或更高版本的服务器核心), Windows Server 2003 SP2 .NET Framework 并不是对每个平台的所有版本都提供支持。有关支持的版本的列表,请参见.NET Framework 系统要求。