做完一个网站,对网站运行代码进行分析,出现200个警告...请教高手!!
我写了一个
public void AddCount()
{
SqlConnection cn = createCon();
SqlCommand cmd = new SqlCommand( "AddCount ", cn);
cmd.CommandType = CommandType.StoredProcedure;
try
{
cn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
Dispose(cn);
return;
}
的函数,它的警告是:
警告 3 CA2000 : Microsoft.Reliability : 修改 DB.AddCount():Void 以释放所有代码路径的类型为“ 'cmd '”的本地 SqlCommand。 e:\WebJake\App_Code\DB.cs 57 E:\WebJake\
还有:
警告 4 CA2200 : Microsoft.Usage : DB.AddCount():Void 再次引发捕获的异常并将其显式地指定为一个参数。请改用不带参数的“throw”以保留该异常最初引发时所在的堆栈位置。 e:\WebJake\App_Code\DB.cs 51 E:\WebJake\
这是什么原因呢
俺是第一次做网站,请高手指点,谢谢
------解决方案--------------------1、你没有释放cmd对象,IDE建议你显式释放cmd对象。
2、throw ex;应该这样写,直接写thorw;就行了!
------解决方案--------------------如果你要释放资源建议用
using(SqlConnection cn = createCon())
{
try
{
cn.Open();
cmd.ExecuteNonQuery();
}
catch (Exception ex)
{
throw ex;
}
}
------解决方案--------------------第一个你没有显示销毁cmd
第二个IDE建议你直接用throw抛出错误,而不需要再加ex
------解决方案--------------------实际上你就算显示调用cmd.Dispose();系统也不会立刻销毁掉,系统都是在一定时间里才会清理一次