C# return和finally的运行顺序求解

[复制链接]
查看11 | 回复2 | 2011-8-26 14:38:33 | 显示全部楼层 |阅读模式
public int TestFunction()

{

try

{

//执行体

return 0;

}

catch (Exception ex)

{

throw new Exception( ex.Message );

return 1;

}

finally

{

//Dispose();

}

}
当没有错发生时 finally 会运行吗?什么时候运行?
当发生错误时 finally 会运行吗?什么时候运行?return 1; 会被执行吗?

回复

使用道具 举报

千问 | 2011-8-26 14:38:33 | 显示全部楼层
finally 块用于清除 try 块中分配的任何资源,以及运行任何即使在发生异常时也必须执行的代码。控制总是传递给 finally 块,与 try 块的退出方式无关。下面给个例子你看就明白了:// try-finallyusing System;public class MainClass{
static void Main()
{
int i = 123;
string s = "Some string";
object o = s;
try
{
// Invalid conversion;...
回复

使用道具 举报

千问 | 2011-8-26 14:38:33 | 显示全部楼层
会,finally不管有没有错都会运行...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行