Sha*_*pta 1 c# performance try-catch
try
{
OpenConnection();
RowsAffected = cmd.ExecuteNonQuery();
CloseConnection(true); //should I use this function call here
//as well, when I am using it in finally
//block. For closing database connection.
}
catch (SqlException ex)
{ throw ex; }
finally
{ CloseConnection(true); }
Run Code Online (Sandbox Code Playgroud)
或者我应该这样写
try
{
OpenConnection();
RowsAffected = cmd.ExecuteNonQuery();
}
catch (SqlException ex)
{ throw ex; }
finally
{ CloseConnection(true); }
Run Code Online (Sandbox Code Playgroud)
不,无论try块中代码的成功或失败,始终执行finally 块.在您的第一个示例中,连接将在成功时关闭两次.
您说您正在检查连接状态,这意味着在关闭连接两次时不会出现异常.不过,我认为仅在必要时尝试关闭它更合适.