CA2000:Microsoft.Reability对象未沿所有异常路径进行处理



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

    public static OracleCommand CreateStoredProcedureCommand(string name,
                                                             OracleConnection connection)
    {
        return new OracleCommand(name, connection) { CommandType = CommandType.StoredProcedure };
    }

CA2000:Microsoft.可靠性:In方法'StoredProcedureHelper.CreateStoredProcedureCommand(字符串,OracleConnection)",对象"command"未全部释放异常路径。对对象"command"调用System.IDisposable.Dispose在所有引用都超出范围之前

如果不加以抑制,如何解决这一问题?

当对属性的赋值引发异常时,对象不会被释放。试试这个:

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;
    }
}

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

您将不得不抑制它。

相关内容

  • 没有找到相关文章

最新更新