异常处理语句

1try-catch语句

try-catch语句由一个try块后跟一个或多个catch子句构成,这些子句指定不同的异常处理程序。

try 块包含可能导致异常的保护代码。该块一直执行到引发异常或成功完成为止。

catch 子句使用时可以不带任何参数,这种情况下它捕获任何类型的异常,并被称为一般 catch 子句。它还可以接受从 System.Exception 派生的对象参数,这种情况下它处理特定的异常。例如:

try

{

      // 除数不能为0

      int x = 0;

      float y = 123/x;

}

catch(ArithmeticException ee)

{

      //获取描述当前异常的消息

      Console.WriteLine(ee.Message);

}

执行代码输出结果为:试图除以0

注意:try块后跟多个catch 子句时,catch块的顺序很重要,因为会按顺序检查 catch 子句。将先捕获特定程度较高的异常,然后捕获特定程度较小的异常。

2try-finally语句

finally块用于清除try块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码。控制总是传递给finally块,与try块的退出方式无关。

catch 用于处理语句块中出现的异常,而finally用于保证代码语句块的执行,与前面的try块的退出方式无关。例如:

int x = 0;

try

{

      // 除数不能为0

      float y = 123 / x;

}

finally

{

      Console.Write(x);

}

此段代码虽然引发了异常,但finally块中的输出语句仍会执行。即:0

3try-catch-finally语句

通常try块、catch块和finally块是一起使用的。在 try 块中获取并使用资源,在 catch 块中处理异常情况,并在 finally 块中释放资源。

4throw语句

throw 语句用于立即无条件的引发异常,控制永远不会到达紧跟在throw后面的语句。通常 throw 语句与 try-catch try-finally 语句一起使用。当引发异常时,程序查找处理此异常的 catch 语句。