| 发表于:2007-03-29 13:31:1412楼 得分:10 |
finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码。控制总是传递给 finally 块,与 try 块的退出方式无关。 备注 catch 用于处理语句块中出现的异常,而 finally 用于保证代码语句块的执行,与前面的 try 块的退出方式无关。 示例 在此例中,有一个导致异常的无效转换语句。当运行程序时,您收到一条运行时错误信息,但 finally 子句仍继续执行并显示输出。 复制代码 // try-finally using system; public class mainclass { static void main() { int i = 123; string s = "some string "; object o = s; try { // invalid conversion; o contains a string not an int i = (int)o; } finally { console.write( "i = {0} ", i); } } } 注释 上面的示例将导致引发 system.invalidcastexception。 尽管捕捉了异常,但仍会执行 finally 块中包含的输出语句,即: i = 123 有关 finally 的更多信息,请参见 try-catch-finally。 c# 语言规范 有关更多信息,请参见 c# 语言规范中的以下各章节: 5.3.3.14 try-finally 语句 8.11 try 语句 16 异常 请参见 任务 如何:显式引发异常 参考 c# 关键字 the try, catch, and throw statements 异常处理语句(c# 参考) throw(c# 参考) try-catch(c# 参考) 概念 c# 编程指南 其他资源 c# 参考 | | |
|