在返回值为bool的自定义方法中使用try-catch-finaly语句,如何设置return?
在finally语句中写return true;会产生编译错误:“控制不能离开finally子句主体”。
bool Test()
{
bool flag;
try
{
flag = true;
}
catch (Exception)
{
flag = false;
throw;
}
finally
{
//释放资源
}
return flag;
}
bool Test()
{
bool flag;
try
{
flag = true;
}
catch (Exception)
{
flag = false;
throw;
}
finally
{
//释放资源
}
return flag;
}
可以自定义一个属性判断处理结果,然后根据这个结果返回
已经有人回答了。答案相当好。请采纳guwei4037的建议
1、try、catch片段都有各自return
2、设置局部布尔变量,在try、catch代码片段分别赋值,方法最后返回该布尔类型变量
说明:try、catch是否有return,finally都会执行的。
return的结果放在计算栈上,和是否经过catch和finally没有关系。