try/catch/finally:异常怎么办?

xadave 2004-03-15 07:44:57
Hi,

我们知道C#中try/catch/finally结构,一般在finally中执行释放资源等动作,
而且无论是否异常都会执行。
问题是,我想出现异常后,不光回收资源,还想函数return,怎么办呢?
在catch最后写个return语句吧,是否会导致finally中指令来不及执行?
否则只有在catch 中return前再写一遍资源回收代码,那样finally就没有
意义了。不是吗?

如果在finally中写return,没有异常也会执行呵,这不对;如果不写的话,我
需要异常时能函数返回呵。好像有矛盾呵,还是我哪儿理解的不对?

各位网友都是怎么做的呢?

谢谢!


...全文
53 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
CSomjet 2004-03-16
  • 打赏
  • 举报
回复
finally不受跳转语句的影响,所以依然会执行
qiume 2004-03-16
  • 打赏
  • 举报
回复
包含在 finally 块中的代码在return后仍然会被执行。
HNU 2004-03-16
  • 打赏
  • 举报
回复
包含在 finally 块中的代码在return后仍然会被执行。
北京的雾霾天 2004-03-16
  • 打赏
  • 举报
回复
对写在finally的处理后面.
Aallonlin 2004-03-16
  • 打赏
  • 举报
回复
同意楼上的。
finally始终是会执行的。

在catch中return,
相当于出现异常后在finally中return,
二者是一样的。
zhpsam109 2004-03-15
  • 打赏
  • 举报
回复
在catch最后写个return语句吧,是否会导致finally中指令来不及执行?
不会,finally始终会执行!

110,533

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧