当我运行此代码时:
count = mdr.GetInt32("total");
mdr是MySQL DataReader的对象
要从我的表中获取total字段的值,如果它返回NULL,则应用程序将以空指针异常停止。
有没有办法捕获此异常?
答案 0 :(得分:0)
因为显然“无效”。是字段的有效(或半有效)值" count,"您可以考虑将计数从int
更改为可空int?
。
或者你可以使用try {} catch {}块来围绕调用,如下所示:
try
{
count = mdr.GetInt32("total");
}
catch(Exception ex)
{
//Any logic you would like to run if "total" is null.
}
答案 1 :(得分:0)
是的,你可以使用try .. catch阻止来捕获异常(请参阅Nex Terren回答)。
另一种方法是使用条件检查作为问题评论中提到的Jon Skeet:
if (!mdr.IsDBNull("total")) { ... }
最后,您可以使用?: operator:
count = mdr.IsDbNull("total") == null ? 0 : mdr.GetInt32("total");