Sar*_*gan 2 .net c# exception finally try-catch
我对这个尝试,捕获以及最后使用return语句工作流程毫无疑问......
此功能用于检索主管视图的员工休假信息.它工作得很好,但是如果找到if语句的数据,它将返回,否则块将返回.即使两者都获得了回报,它也会最终声明.我不知道为什么?
这里的代码片段:
List<Leave> ILeaveData.GetLeaveForSupervisorView(int userID)
{
SqlConnection con = new SqlConnection(_connectionString);
SqlCommand cmd = new SqlCommand("Storeprocedurename", con);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add(new SqlParameter("@Id", SqlDbType.Int));
cmd.Parameters["@Id"].Value = userID;
// Get employee leave information
try
{
con.Open();
DataSet ds = new DataSet();
SqlDataAdapter adapter = new SqlDataAdapter();
adapter.SelectCommand = cmd;
adapter.Fill(ds);
if (ds.Tables[0].Rows.Count > 0)
{
List<Leave> leave = new List<Leave>();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
leave.Add(CreateLeaveForAdminViewFromDataRow(ds.Tables[0].Rows[i]));
}
return leave; // if data found then statement return here
}
else
{
return null; // otherwise return here
// throw new Exception("Data Error");
}
}
catch (SqlException err)
{
IErrorLog elog = new ErrorLog(_connectionString);
elog.LogSystemError(err);
throw new ApplicationException("Data Error", (Exception)err);
}
finally
{
if (con != null)
{
con.Close();
}
}
}
Run Code Online (Sandbox Code Playgroud)
关于萨尔瓦
Dar*_*ren 10
最后,即使没有异常发生,也始终执行语句.
http://msdn.microsoft.com/en-gb/library/zwc8s4fz(v=vs.110).aspx:
通常,当控件离开try语句时,finally块的语句会运行.控制权的转移可以是正常执行,执行break,continue,goto或return语句,或者从try语句中传播异常的结果.
| 归档时间: |
|
| 查看次数: |
2198 次 |
| 最近记录: |