循环内调用 Storageable 在连续错误多次后会导致整个循环卡起。 返回

SqlSugar 沟通中
5 224
该叫什么 LDMING 发布于2周前
悬赏:0 飞吻

现象为,在循环内调用,使用Storageable 插入或更新数据的方法,即使整个方法加了try-catch,在错误多次后依然会导致整个循环停止。

伪代码

for (int count = 0; count < 100000; count++) {

   Test(new Model(){...}); }


void Test(Modle modle){

try

{

    using var db = SqlSugarContext.NewDefaultClient();

    db.Storageable(modle).ExecuteCommand();

}

catch (Exception ex)

{

    _logger.LogError(ex, "出现错误");

}

}


在执行 db.Storageable(modle).ExecuteCommand() 时,如果连续出现多次错误,整个循环就停止了。




热忱回答5

  • 不会的。除非你catch里面报错了。才会停止。

    0 回复
  • QQ图片20251104162015.png

    QQ截图20251104162140.png

    0 回复
  • catch 里只有一个 JsonHelper.TrySerializer 和一个打印日志的语句,从命名就可以看出,JsonHelper.TrySerializer内部是全try-catch包裹的

    0 回复
  • 从打印日志就可以看到,try-catch 捕获了异常,但后面的“Microsoft. Data.SqlClient.SqlException(Ox80131904):将float转换为数据类型mumeric时出现算术溢出错误” 好像没被捕获到

    0 回复
  • @LDMING


        _logger.LogError(ex, ex.Message);

    0 回复