在下面的下面的例子中,我返回从一个数据库中的值,并且由于是NULL值转换为双,如果它翻倒,则0被设置为默认值.
using (SqlCommand cmd = new SqlCommand(sql.ToString(), conn))
{
try
{
this.value = Convert.ToDouble(cmd.ExecuteScalar());
}
catch (Exception)
{
this.value = 0;
}
}
Run Code Online (Sandbox Code Playgroud)
通过在这种情况下使用Try Catch,这会被视为不良做法吗?什么是处理这种情况的更好方法?
Jon*_*eet 13
通过在这种情况下使用Try Catch,这会被视为不良做法吗?
绝对.除了其他任何东西,如果有任何失败,你返回0 ,而不仅仅是返回值为null.(如果事实证明整个表已被删除,你真的想继续好像一切都好吗?)
如果要检测空返回值,则应明确执行以下操作:
object result = cmd.ExecuteScalar();
return result == null ? 0d : (double) result;
Run Code Online (Sandbox Code Playgroud)
这将仍然抛出(故意),如果有一个非空返回值是不是一个double.您应该知道您的查询应该返回什么类型,如果事实证明您的类型错误,则会失败.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |