找回密码
 立即注册

QQ登录

只需一步,快速开始

Lay.Li 悬赏达人认证 活字格认证
超级版主   /  发表于:2024-9-10 19:03  /   查看:179  /  回复:0
本帖最后由 Lay.Li 于 2024-9-11 14:46 编辑

大家好啊,今天给大家带来的是循环命令中出错如何继续执行循环

问题的背景是这样的,用户想在服务端命令使用循环命令,循环执行sql命令去插入数据
image.png276322325.png
发现,如果循环的数据中有一条数据内容有问题,比如要插入的字段是整数类型,内容却是"A"这样的文本。这样命令执行时就会报错,造成整个服务端命令终止。
image.png456448668.png
但是用户的需求是,如果有问题的数据,可以不用插入,直接跳过插入,但是服务端命令得继续执行,继续将后续的数据插入,这个要怎么实现呢。
这个的话就是我们今天要介绍的一个小技巧,使用异常捕获命令去自行处理一下报错,达成上面的需求。

首先,给大家解释一下,这里出错后服务端命令之所以会终止执行,是因为执行sql命令返回了一个返回码为500,返回信息为"执行SQL命令调用失败,转换参数类型失败,无法将参数“number”的值 A 转换为类型 Int64"的信息。导致命令执行终止,

所以我们这里可以将执行sql命令放到另外一个服务端命令中,使用异常捕获命令包装一下。捕获一下这个错误,在catch命令中返回一下返回码为0的错误信息,告知插入失败,但是不终止命令服务端命令的执行(如果需要子命令逻辑发生错误回退的话,可以使用在try命令中使用事务命令封装)
image.png273724059.png
这样我们就可以实现上述效果了
image.png916825256.png

封装逻辑.fgcc

136.16 KB, 下载次数: 21

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部