foreach循环块外的Continue语句
本文关键字:Continue 语句 循环 foreach | 更新日期: 2023-09-27 18:15:39
使用c#,我们可以在foreach
之外使用continue吗?我的意思是,我们可以跳过异常场景,转移到下一个记录验证吗?根据我的场景,我必须将代码重构为一个单独的方法,而不是在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;
}
}
不能在循环块外写入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);
}
}