异常用于指示在运行程序时发生了错误。此时将创建一个描述错误的异常对象,然后使用 throw 关键字“引发”该对象。然后运行库搜索最兼容的异常处理程序。

程序员应在下列情况下引发异常:

异常包含一个名为 StackTrace 的属性,此字符串包含当前调用堆栈上的方法的名称,以及为每个方法引发异常的位置(文件名和行号)。StackTrace 对象由 CLR 从 throw 语句点开始自动创建,因此必须从堆栈跟踪的开始点引发异常。

所有异常都包含一个名为 Message 的属性,应该设置此字符串来解释发生异常的原因。注意,不应将安全敏感信息放在消息文本中。除 Message 之外,ArgumentException 还包含一个名为 ParamName 的属性,应将该属性设置为导致引发异常的参数的名称。对于属性设置器,ParamName 应设置为 value

公共的受保护方法应在其无法完成预期功能时引发异常。引发的异常类应该是符合错误条件的最确切的可用异常。这些异常应编写为类功能的一部分,派生类或对原始类的更新应保留相同的行为,以实现向后兼容性。

不应作为正常执行的一部分来使用异常改变程序的流程,异常只能用于报告和处理错误情况。只能引发异常,而不能作为返回值或参数返回异常。程序员不应有意引发 System.ExceptionSystem.SystemExceptionNullReferenceExceptionIndexOutOfRangeException

Expand 图像定义异常类

Expand 图像C# 语言规范

Expand image请参见