gpt4 book ai didi

c# - 使用 Try Catch 转换值

转载 作者:太空宇宙 更新时间:2023-11-03 17:11:05 25 4
gpt4 key购买 nike

在下面的示例中,我从数据库返回一个值并将该值转换为 double 值,如果它由于为 NULL 而失败,则将 0 设置为默认值。

using (SqlCommand cmd = new SqlCommand(sql.ToString(), conn))
{
try
{
this.value = Convert.ToDouble(cmd.ExecuteScalar());
}
catch (Exception)
{
this.value = 0;
}
}

在这种情况下使用 Try Catch 是否会被视为不好的做法?处理这种情况的更好方法是什么?

最佳答案

By using a Try Catch in this instance, would this be considered bad practice?

当然。撇开其他不谈,如果任何 失败,您将返回 0,而不仅仅是返回值为 null 时。 (如果发现整张表都被删除了,你真的想继续当一切都很好吗?)

如果你想检测一个空返回值,你应该明确地这样做:

object result = cmd.ExecuteScalar();
return result == null ? 0d : (double) result;

如果存在不是 double 的非空返回值,这将仍然抛出(并且故意)。您应该知道您的查询应该返回什么类型,如果发现您得到了错误的类型则失败。

关于c# - 使用 Try Catch 转换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15686060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com