在返回值为bool的自定义方法中使用try-catch-finaly语句,如何设置return?

在返回值为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没有关系。