刚过完年,需求方需求不是很紧。复查了一下我们开发人员的代码(含java和.net)会发现很多错误,有些还会隐藏的很深不容易被黑盒测试人员所发现。特意整理如下,快看看你写过的代码有没有类似的错误。
错误的使用&&进行空参数判断
代码语言:javascript复制//错误
if (dt == null && dt.Rows.Count <= 0)
如果dt为空,逻辑表达式会继续向后检查。并抛出异常。应改为
代码语言:javascript复制//正确
if (dt == null || dt.Rows.Count <=0)
另外一种常见的错误
代码语言:javascript复制//错误
if (dt != null || dt.Rows.Count > 0)
程序内值传递不显示指定
代码语言:javascript复制//错误
public void setName(string name)
{
name = name;
}
//正确
public void setName(string name)
{
this.name = name;
}
在使用string.Format()方法时预期的参数个数和实际的不符。
代码语言:javascript复制//错误
var s1 = string.Format("{0} {1} {2}", 1, 2);
var s2 = string.Format("{0}", 10, 11);
//正确
var s1 = string.Format("{0} {1} {2}", 1, 2, 3);
静态变量错误的初始化顺序
代码语言:javascript复制//错误
public static SmsConnection smsConnection = SmsConnection.Connect(smsOperator);
public static SmsOperator smsOperator;
//正确
public static SmsOperator smsOperator;
public static SmsConnection smsConnection = SmsConnection.Connect(smsOperator);
错误的位置使用了using,以下使用方法主调方法可能可以使用返回的table但可能导致运行时错误。请尽量避免
代码语言:javascript复制//错误
public static DataTable GetDT()
{
using(DataTable table=new DataTable())
{ //操作table对象
return table;
}
}
//正确
public static DataTable GetDT()
{ DataTable table=new DataTable(); //操作table对象
return table;
}