首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CA2000 : Microsoft.Reliability对象并非沿所有异常路径被释放

CA2000 : Microsoft.Reliability对象并非沿所有异常路径被释放
EN

Stack Overflow用户
提问于 2012-02-09 08:55:28
回答 2查看 2.7K关注 0票数 1

我在下面的方法中得到了代码分析错误。

代码语言:javascript
复制
    public static OracleCommand CreateStoredProcedureCommand(string name,
                                                             OracleConnection connection)
    {
        return new OracleCommand(name, connection) { CommandType = CommandType.StoredProcedure };
    }

'StoredProcedureHelper.CreateStoredProcedureCommand(string,

CA2000 : Microsoft.Reliability :在方法Microsoft.Reliability OracleConnection)‘中,对象’命令‘不是沿所有异常路径释放的。在所有对对象的引用超出作用域之前,在对象‘命令’上调用System.IDisposable.Dispose

如何才能解决这一问题而不加以压制呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-02-09 09:07:34

当分配给属性时引发异常时,将不会释放该对象。试试这个:

代码语言:javascript
复制
public static OracleCommand CreateStoredProcedureCommand(string name,
                                                         OracleConnection connection)
{
    OracleCommand result = new OracleCommand(name, connection);
    try
    {
        result.CommandType = CommandType.StoredProcedure;
        return result;
    }
    catch
    {
        result.Dispose();
        throw;
    }
}
票数 7
EN

Stack Overflow用户

发布于 2012-02-09 08:58:53

它不能,从方法上看,处理对象的责任必须始终由调用方承担。

你必须压制它。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9207801

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档