C#中规定:如果程序的控制流进入了一个带finally块的try语句,那么finally语句块始终会被执行
例子:
class Program
{
static void Main(string[] args)
{
Console.WriteLine(GetNumber()); ;
Console.ReadKey();
} static int GetNumber()
{
try
{
int n1 = ;
int n2 = ;
int n3 = n1 / n2;
return ;
}
catch (Exception ex)
{
Console.WriteLine("*******异常了*********");
return ;
}
finally
{
Console.WriteLine("finally中的代码!!!!");
//finally块里不能再有return语句
}
} }
执行结果:
Javascript里是这样的:只要代码中包含了finally子句,则无论try或catch语句块中包含什么代码——甚至return语句,都不会阻止finally子句的执行:
function testFinally(){
try{
//......
return 2;
}
catch(err){
return 1;
}
finally{
return 0;
}
}
这个函数只会返回0,即finally块里的return