What is a correct approach try/catch inside using or using inside try/catch?
using (SqlConnection connection = CreateSqlConnection(connString))
{
using (SqlCommand command = CreateSqlCommand()
{
try{//open connection + execute command + do something else}
catch{//do something}
}
}
vs.
try
{
using (SqlConnection connection = CreateSqlConnection(connString))
{
using (SqlCommand command = CreateSqlCommand()
{
//open connection + execute command + do something else
}
}
}
catch
{
//do something
}
From my point of view:
Above is the correct way.
Because , with this approach if there is exception with connection to database, that will get caught inside catch block.. But with first approach, it will not.
Personally, I think the best way is - then the connection is closed regardless and you get to handle the exception as you wish
Both are correct in the sense that both will close the disposable resources in case of an error.
Where you place the try-catch-statement should depend on what you want to do with that information, i.e. if you want to react to an error concerning the SqlCommand itself or a more general SQL-error, that could also involve the connection.