C# 用于多个可能异常的单个异常处理程序
我想检查C数据库调用的结果,以确保 返回的数据表不为空 DataTable的行数DataTable.rows.Count>1 如果这两个条件中的任何一个为真,我希望返回相同的异常,因为这种类型的结果不是预期的,应该总是有一些记录。有没有一种方法可以在不重复throw exception语句的情况下执行此操作C# 用于多个可能异常的单个异常处理程序,c#,exception,C#,Exception,我想检查C数据库调用的结果,以确保 返回的数据表不为空 DataTable的行数DataTable.rows.Count>1 如果这两个条件中的任何一个为真,我希望返回相同的异常,因为这种类型的结果不是预期的,应该总是有一些记录。有没有一种方法可以在不重复throw exception语句的情况下执行此操作 if (myDataTable != null) { if (myDataTable.Rows.Count > 0) { myRow = myDataTable.R
if (myDataTable != null)
{
if (myDataTable.Rows.Count > 0)
{
myRow = myDataTable.Rows[0];
}
else
{
throw new Exception("Problem obtaining data");
}
}
else
{
throw new Exception("Problem obtaining data");
}
出于我的目的,我不需要区分这些例外情况。也许吧
if (myDataTable != null && myDataTable.Rows.Count > 0)
{
myRow = myDataTable.Rows[0];
}
else
{
throw new Exception("Problem obtaining data");
}
您不需要嵌套if语句
if (myDataTable != null && myDataTable.Rows.Count > 0)
{
myRow = myDataTable.Rows[0];
}
else
{
throw new Exception("Problem obtaining data");
}
您不需要嵌套if语句,只需编写:
if (myDataTable == null || myDataTable.Rows.Count == 0)
{
throw new Exception("Problem obtaining data");
}
myRow = myDataTable.Rows[0];
你可以简单地写:
if (myDataTable == null || myDataTable.Rows.Count == 0)
{
throw new Exception("Problem obtaining data");
}
myRow = myDataTable.Rows[0];
我认为空检查是反向的:我认为空检查是反向的:在C 6中,您可以编写if myDataTable?.Rows.Count>0,并避免将空检查标记为应答,因为我喜欢在else中有异常的想法。来自@sebastien的回答也是正确的。很抱歉必须选择一个。对于那些不熟悉的人来说,可能值得添加一个关于&&和| |短路评估的小解释。在C 6中,您可以编写if myDataTable?.Rows.Count>0,并避免将空复选标记为答案,因为我喜欢在else中包含异常的想法。来自@sebastien的回答也是正确的。很抱歉必须选择一个。对于那些不熟悉的人来说,可能值得添加一个关于&&&| | |短路评估的小解释。