在Using语句中捕获异常

2023-12-23

我知道Using http://msdn.microsoft.com/en-us/library/yh598w02%28v=vs.100%29.aspx语句释放正在创建的对象。就像我想做这样的事情:

    Using(SqlConnection conn = new SqlConnection(connString))
    {
      //some code
      //How to show the users if conn is not opened up or generated some kind of error?
    }

如果 conn 未打开或生成某种错误,如何向用户显示?


在 a 中编写的代码没有什么特别的using块 - 只需使用try.catch处理异常:

using(SqlConnection conn = new SqlConnection(connString))
{
    try
    {
        conn.Open();
        // do more stuff here......

    }
    catch(SqlException sqlEx)
    {
       // log error and possibly show to user in a MessageBox or something else
    }
}

The using(...) { ... }块本身被设计only确保它“封装”的资源/对象在不再需要时得到正确处理。你对此无能为力using语句本身以使其处理错误。

因此,如果您预计仅创建对象可能会失败,那么您必须将整个using块内try ... catch阻止,或回退到try ... catch ... finally阻止并确保自己进行适当处置(正如亚当在回答中所建议的那样)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在Using语句中捕获异常 的相关文章

随机推荐