多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# throw(C# 参考) **throw** 语句用于发出程序执行期间出现反常情况(异常)的信号。 ## 备注 引发的异常是一个对象,其类派生自 [System.Exception](https://msdn.microsoft.com/zh-CN/library/system.exception.aspx),如以下示例所示。 ``` class MyException : System.Exception {} // ... throw new MyException(); ``` 通常,**throw** 语句与 **try-catch** 或 **try-finally** 语句结合使用。可在 **catch** 块中使用 语句以重新引发已由 **catch** 块捕获的异常。在这种情况下, 语句不采用异常操作数。有关更多信息和示例,请参见 [try-catch(C# 参考)](https://msdn.microsoft.com/zh-CN/library/0yd65esw.aspx)和[如何:显式引发异常](https://msdn.microsoft.com/zh-CN/library/xhcbs8fz.aspx)。 此示例演示如何使用 **throw** 语句引发异常。 ``` public class ThrowTest2 { static int GetNumber(int index) { int[] nums = { 300, 600, 900 }; if (index > nums.Length) { throw new IndexOutOfRangeException(); } return nums[index]; } static void Main() { int result = GetNumber(3); } } /* Output: The System.IndexOutOfRangeException exception occurs. */ ``` ## 代码示例 请参见 [try-catch(C# 参考)](https://msdn.microsoft.com/zh-CN/library/0yd65esw.aspx)和[如何:显式引发异常](https://msdn.microsoft.com/zh-CN/library/xhcbs8fz.aspx)中的示例。 ## C# 语言规范 有关详细信息,请参阅 [C# 语言规范](https://msdn.microsoft.com/zh-CN/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-CN/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-CN/library/67ef8sbd.aspx) [try-catch(C# 参考)](https://msdn.microsoft.com/zh-CN/library/0yd65esw.aspx) [C++ 中的 try、catch 和 throw 语句](https://msdn.microsoft.com/zh-CN/library/0yd65esw.aspx) [C# 关键字](https://msdn.microsoft.com/zh-CN/library/x53a06bb.aspx) [异常处理语句(C# 参考)](https://msdn.microsoft.com/zh-CN/library/s7fekhdy.aspx) [如何:显式引发异常](https://msdn.microsoft.com/zh-CN/library/xhcbs8fz.aspx)