我正在进行代码审查,我注意到开发人员已经这样做了:
UserSession.LocationId = CheckInteger(elementValue);
Run Code Online (Sandbox Code Playgroud)
用这个包装器
private int CheckInteger(string elementValue)
{
int outNumber;
int.TryParse(elementValue, out outNumber);
return outNumber;
}
Run Code Online (Sandbox Code Playgroud)
我看不出这给党带来了很大的影响.我应该推回去,还是只是让睡觉的狗躺着?我认为没有任何特定的公司政策可以涵盖这一点.
他们是睡觉的狗还是狼?此代码有效地丢弃非整数值,并为失败的情况返回0.
这可能适用也可能不合适,但名称肯定会产生误导 - 根本不会进行检查.简单地丢弃错误.它几乎等同于隐藏异常.
这可以在不检测无效值1和0是在意想不到的地方设置伤害你.
这样的方法至少应该被重命名,GetIntegerOrDefault因此明确它会在出错时返回默认值.
您还应确保0是LocationId的有效值或至少是预期的默认值.否则,您可能会遇到一些非常难以诊断的错误.
我在证券交易所申请中遇到了一些错误,这些错误发送的投资组合业绩比率为-100%,因为有人提出了10个等级,因为无效的汇率值会导致0回报,5年之后没有人记得.
| 归档时间: |
|
| 查看次数: |
105 次 |
| 最近记录: |