【发布时间】:2019-02-19 05:16:12
【问题描述】:
如果在 using 语句中抛出异常,它应该立即调用 finally 块,并处置对象。所以 try 块的其余部分不应该执行,对吧?
public static async Task<bool> AddCharName(string id, string name)
{
using (var dbConn = new DbConn())
{
await dbConn.Connection.OpenAsync();
command = "UPDATE user SET name = @name WHERE name IS NULL AND id = @id";
using (MySqlCommand update = dbConn.Connection.CreateCommand())
{
update.CommandText = command;
update.Parameters.Add("@name", MySqlDbType.VarChar).Value = name;
update.Parameters.Add("@id", MySqlDbType.VarChar).Value = id;
await update.ExecuteNonQueryAsync();
return true;
}
}
return false;
}
在我的示例中,return false 发出“检测到无法访问的代码”警告。我将其视为错误是否正确?就像我在想,如果在using (MySqlCommand upd... 中抛出错误,那么它应该返回 false 对吗?
【问题讨论】:
-
你没有
try块。 -
using真的是try finally块,不是吗?
标签: c#