我可以在返回时执行此操作以处理异常吗?
本文关键字:处理 异常 操作 返回 执行 我可以 | 更新日期: 2023-09-27 18:34:31
在我的函数中,我返回了一个由方法返回的数据表
MyDatatable(sqlQuery, connection ),
但它可能会生成一些会抛出错误的异常,我可以做这样的事情吗
return try {cmn.MyDatatable(qry, con)} catch(Exception ex){null};
我不想这样做
DataTable dt =null;
try{
dt = cmn.MyDatatable(qry, con);
}catch().....
return dt==null ? null :dt;
你的语法很错误。你可以这样做:
try
{
return cmd.MyDatatable(qry, con);
}
catch(Exception ex)
{
return null;
}
虽然我怀疑你想吞下所有的例外。
IMO,最好的方法是这样做:
{
object l_oOutDatatable = null;
try
{
oOutDatable = cmd.MyDatatable(qry, con);
}
catch(Exception e)
{
log.Message(e.ToString);
}
return l_oOutDatatable;
}
您必须始终管理异常,因为它们必须有充分的理由被抛出;)。此外,在每种方法中都有一个单一的回报被认为是一种很好的做法。
在奖励中,您可以使用??
关键字:此关键字的意思是返回值或其他内容(如果它是null(。 例如:c = a ?? b
类似于这样: c = (a!=null) ? a : b;
您应该将异常一直返回到调用此代码的客户端。由客户端来处理异常。
请记住,您应该只捕获您希望发生异常的地方,例如尝试连接到数据库或将文件写入磁盘等。
还应使异常捕获尽可能具体,以捕获通常在获取数据集时发生的已知异常。
try
{
return cmd.MyDatatable(qry, con);
}
catch(Exception ex)
{
//Log exeption
Throw ex
}
如果这只是在没有结果时处理空数据表的检查,则应测试它们是否为空或填充。如果这是应用程序返回空数据表能力的一部分,这将是一个更好的解决方案。
var dataTableResult = cmd.MyDatatable(qry, con);
if ( dataTableResult != null)
{
return dataTableResult;
}
return null;