在try / catch中使用或使用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
}
答案 0 :(得分:5)
从我的观点来看:
try
{
using (SqlConnection connection = CreateSqlConnection(connString))
{
using (SqlCommand command = CreateSqlCommand()
{
//open connection + execute command + do something else
}
}
}
catch
{
//do something
}
以上是正确的方法。
因为使用这种方法,如果与数据库的连接存在异常,那么它将被捕获到catch块中..但是第一种方法,它不会。
答案 1 :(得分:1)
两者都是正确的,因为两者都会在出现错误时关闭可支配资源。
你放置try-catch-statement的地方应该取决于你想对这些信息做什么,即如果你想对有关SqlCommand本身的错误或更普遍的SQL错误作出反应,那也可能涉及连接。
答案 2 :(得分:1)
就个人而言,我认为最好的方法是 - 然后关闭连接,你可以按照自己的意愿处理异常
using (SqlConnection connection = CreateSqlConnection(connString))
{
using (SqlCommand command = CreateSqlCommand())
{
try { //open connection, execute }
catch { // log and handle exception }
finally { // check connection state and close if required }
}
}