当前位置:  开发笔记 > 编程语言 > 正文

C# - Try-Catch-Finally on Return

如何解决《C#-Try-Catch-FinallyonReturn》经验,为你挑选了1个好方法。

我有以下代码:

public DataTable GetAllActiveUsers()
{
            DataTable dataTable = new DataTable();

            try
            {
                connection.Open();

                SqlCommand getAllActiveUsersCommand = new SqlCommand(getAllUsers, connection);

                SqlDataAdapter dataAdapter = new SqlDataAdapter(getAllActiveUsersCommand);
                dataAdapter.Fill(dataTable);

                return dataTable;
            }
            catch(Exception e)
            {
                Console.WriteLine(e);

                return null;
            }
            finally
            {
                connection.Close();
            }
        }

这基本上是我的数据库中的活跃用户.但有人可以向我解释,Finally如果成功运行try块并返回DataTable,是否会执行Block ?

谢谢



1> gyosifov..:

是.

如上所述:MSDN

通常,当控件离开try语句时,finally块的语句会运行.控制权的转移可以是正常执行,执行break,continue,goto或return语句,或者从try语句中传播异常的结果.

但最后块并不总是执行.你可以在这里阅读Alex Papadimoulis的轶事

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有