c# – 如果在“using”语句中使用trycatch,是否会处置一次性资源?

c# – 如果在“using”语句中使用trycatch,是否会处置一次性资源?,第1张

概述我正在使用SqlConnection和SqlCommand. 例如,如果有任何SqlException,我必须捕获异常. 我正在使用using子句并在其中嵌入try / catch块.这是代码: public static void LogError(string error, string message){ using (SqlConnection conn = new SqlCon 我正在使用sqlConnection和sqlCommand.

例如,如果有任何sqlException,我必须捕获异常.

我正在使用using子句并在其中嵌入try / catch块.这是代码:

public static voID LogError(string error,string message){    using (sqlConnection conn = new sqlConnection(ConfigurationManager.AppSettings["connStringWeb"]))    using (sqlCommand cmd = new sqlCommand("INSERT INTO errorLogtable (errorTime,errorType,error) VALUES(@errorTime,@errorText,@errorMsg)"))    {        cmd.CommandTimeout = 300;        cmd.Connection = conn;        cmd.Prepare();        cmd.Parameters.AdDWithValue("@errorTime",DateTime.Now);        cmd.Parameters.AdDWithValue("@errorText",error);        cmd.Parameters.AdDWithValue("@errorMsg",message);        try        {           conn.open();           int i = cmd.ExecuteNonquery();        }        catch { }        }   }}

我的问题是,我的sqlConnection和sqlCommand是否会在异常的情况下被处理掉,这是一个很好的方法来处理它,或者我应该只使用try / catch / finally块的旧时尚方法?

解决方法 在您的情况下,异常会在使用中被捕获,并且在您离开using块时执行dispose.

但即使你将try块放在try catch之外并抛出异常,也会调用dispose.

public static voID LogError(string error,string message){    try    {        using (sqlConnection conn = new sqlConnection(ConfigurationManager.AppSettings["connStringWeb"]))            using (sqlCommand cmd = new sqlCommand("INSERT INTO errorLogtable (errorTime,@errorMsg)"))            {                cmd.CommandTimeout = 300;                cmd.Connection = conn;                cmd.Prepare();                cmd.Parameters.AdDWithValue("@errorTime",DateTime.Now);                cmd.Parameters.AdDWithValue("@errorText",error);                cmd.Parameters.AdDWithValue("@errorMsg",message);                conn.open();                int i = cmd.ExecuteNonquery();            }    }    catch {}}
总结

以上是内存溢出为你收集整理的c# – 如果在“using”语句中使用try / catch,是否会处置一次性资源?全部内容,希望文章能够帮你解决c# – 如果在“using”语句中使用try / catch,是否会处置一次性资源?所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1219462.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存