请问c#中return语句不能写在finally里面吗?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请问c#中return语句不能写在finally里面吗?相关的知识,希望对你有一定的参考价值。
public bool CloseDB()
bool bRtn = false;
try
if (m_Conn.State == ConnectionState.Open)
m_Conn.Close();
bRtn = true;
catch (Exception e)
bRtn = false;
finally
return bRtn;
这个为什么显示
控制不能离开 finally 子句主体?
谢谢!
你可以这么写
try
if (m_Conn.State == ConnectionState.Open)
m_Conn.Close();
bRtn = true;
return bRtn
catch (Exception e)
bRtn = false;
return bRtn
参考技术B public bool CloseDB()
bool bRtn = false;
try
if (m_Conn.State == ConnectionState.Open)
m_Conn.Close();
bRtn = true;
catch (Exception e)
bRtn = false;
return bRtn;
这样做不就好了吗?finall是必须执行部分,怎么能用来返回呢,当程序出现错误的时候,是没办法返回的啊。另外感觉你这个程序有点怪怪的。本回答被提问者采纳
python中try里有return时,finally还执行不执行
写一个函数,在try里返回,最后在finnaly里打印语句,代码如下
def fun1(): x = 1 try: print(\'执行try\') x = x + 1 # x = x / 0 # 执行次语句时,finally执行时,x的值依然是4 return print(\'执行try的return\', x) except:
print(\'异常\') return x finally: x += 1 x += 1 print(\'finally执行:\', x)
执行结果如下图所示:
由此可以看出,函数的执行顺序就是按照 try - except - finally的顺序执行,
也就是说,finally语句块总是会被执行的,并且如果finally里有 try语句块里的变量
那么,该变量会继承try语句块里的值
以上是关于请问c#中return语句不能写在finally里面吗?的主要内容,如果未能解决你的问题,请参考以下文章
若catch中抛出运行时异常,请问在try catch语句块中return语句是写在try中还是写在try catch语句外。
java异常中try或catch语句中可以有return语句吗?如有return会执行finall
java try catch finally return执行顺序
try{}里有一个return语句,那么紧跟在这个try后的finally{}里的代码会不会被执行,什么时候被执行,在return前还是后?