using System; using System.Collections.Generic; using System.Text; namespace ArgumentOutOfRangeExample { class Program { static public void Main() { int[] array1 ={ 0, 1 }; int[] array2 ={ 2, 3 }; try { Array.Copy(array1, array2, 2); } catch (ArgumentOutOfRangeException e) { Console.WriteLine("Error: {0}", e); } finally { Console.WriteLine("This statement is always executed."); } } } }
异常发生时,执行将终止,并且控制交给最近的异常处理程序。这通常意味着不执行希望总是调用的代码行。有些资源清理(如关闭文件)必须总是执行,即使有异常发生。为实现这一点,可以使用 Finally 块。Finally 块总是执行,不论是否有异常发生。
下面的代码示例使用 Try/Catch 块捕捉 ArgumentOutOfRangeException。Main 方法创建两个数组并试图将一个数组复制到另一个数组。该操作生成 ArgumentOutOfRangeException,同时错误被写入控制台。Finally 块执行,不论复制操作的结果如何。
示例
using System; class ArgumentOutOfRangeExample { static public void Main() { int[] array1={0,0}; int[] array2={0,0}; try { Array.Copy(array1,array2,-1); } catch (ArgumentOutOfRangeException e) { Console.WriteLine("Error: {0}",e); } finally { Console.WriteLine("This statement is always executed."); } } }