使用C#,我们可以在foreach
之外继续使用吗?我的意思是我们可以跳过异常情况并转到下一个记录验证吗?根据我的场景,我必须将代码重构为单独的方法,而不是在foreach
循环中使用continue。
foreach (var name in Students)
{
//forloop should continue even if there is any logic exception and move to next record
CheckIfStudentExist();
}
private void CheckIfStudentExist()
{
try
{
//do some logic to verify if student exist & take to catch if there is some error in logic
}
Catch(Exception)
{
continue;
}
}
答案 0 :(得分:1)
你不能在循环块之外写continue
语句。
如果您希望异常保持沉默,只需将catch
块保留为空。
private void CheckIfStudentExist()
{
try
{
//do some logic to verify if student exist & take to catch if there is some error in logic
}
catch
{
}
}
然而,空catch
块是一种不好的做法。至少在里面写一些日志语句,这样异常就不会永远丢失。
最好声明我们自己的业务异常类,这样我们就可以捕获特定的异常类型并留下其他类型(可能是致命的)异常来暂停我们的代码执行。
private void CheckIfStudentExist()
{
try
{
//do some logic to verify if student exist & take to catch if there is some error in logic
}
catch(ValidationException e)
{
// example of the log statement. Change accordingly.
Log.Error(e, "Validation failed when validating student Id {0}", studentId);
}
}