当前位置: 首页 > 面试题库 >

继续-优雅地处理多个错误?

姚洲
2023-03-14
问题内容

有没有办法清理此(IMO)恐怖代码

    aJson, err1 := json.Marshal(a)
bJson, err2 := json.Marshal(b)
cJson, err3 := json.Marshal(c)
dJson, err4 := json.Marshal(d)
eJson, err5 := json.Marshal(e)
fJson, err6 := json.Marshal(f)
gJson, err4 := json.Marshal(g)
if err1 != nil {
    return err1
} else if err2 != nil {
    return err2
} else if err3 != nil {
    return err3
} else if err4 != nil {
    return err4
} else if err5 != nil {
    return err5
} else if err5 != nil {
    return err5
} else if err6 != nil {
    return err6
}

具体来说,我在谈论错误处理。能够一次性处理所有错误将是很好的。


问题答案:
var err error
f := func(dest *D, src S) bool {
    *dest, err = json.Marshal(src)
    return err == nil
} // EDIT: removed ()

f(&aJson, a) &&
    f(&bJson, b) &&
    f(&cJson, c) &&
    f(&dJson, d) &&
    f(&eJson, e) &&
    f(&fJson, f) &&
    f(&gJson, g)
return err


 类似资料:
  • 让我们假设我们有这样一个用python编写的琐碎守护进程: 我们使用< code>start-stop-daemon对其进行守护,默认情况下,它会在< code> - stop上发送< code > SIGTERM (< code > TERM )信号。 假设当前执行的步骤是。此时我们正在发送信号。 发生的情况是执行立即终止。 我发现我可以使用<code>signal.signal(signal.

  • 在我的spring integration应用程序中,我有一个异步网关方法,它指定了errorChannel。 On Error-我希望通过向ErrorChannel注册集成流来处理错误(我能够成功地做到这一点)。 一旦错误被处理和处理,我可能需要有条件地发送到另一个通道进行进一步处理,并在最后回复回网关。实现这一点的最佳方法是什么? 示例-> 我如何做到这一点?

  • 问题内容: 假设我们有一个用python编写的琐碎守护程序: 我们将它守护起来,默认使用它发送信号–。 假设当前执行的步骤是。此时此刻,我们正在发送TERM信号。 发生的情况是执行立即终止。 我发现我可以使用处理信号事件,但事实是它仍然会中断当前执行并将控制权传递给。 因此,我的问题是-是否可以不中断当前执行,而是TERM在单独的线程(?)中处理信号,以便能够进行设置,从而有机会优雅地停止运行?

  • 本文向大家介绍Spring Boot优雅地处理404异常问题,包括了Spring Boot优雅地处理404异常问题的使用技巧和注意事项,需要的朋友参考一下 背景 在使用SpringBoot的过程中,你肯定遇到过404错误。比如下面的代码: 当我们使用错误的请求地址(POST http://127.0.0.1:8888/hello/test1?id=98)进行请求时,会报下面的错误: 虽然上面的返回

  • 让我们假设我们有这样一个用java编写的普通守护进程: 我们使用 来守护它,默认情况下,它会在 上发送 (TERM) 信号 假设当前执行的步骤是#2,此时我们正在发送项信号。 发生的情况是执行立即终止。 我发现我可以使用<code>addShutdownHook()</code>处理信号事件,但问题是它仍然会中断当前的执行,并将控制传递给处理程序: 所以,我的问题是——有没有可能不中断当前的执行,

  • 我有一个部署脚本,该脚本在本地构建生产资产,并通过scp将它们传输到服务器。压缩格式。 然后,它使用ssh连接到那里,并执行一系列命令,同时解压缩传输的文件。 一个有效的例子: 问:如果任何命令失败,我如何停止执行并过早退出?当然,继续使用本地脚本。 大多数命令都是有条件的,前面的命令需要工作,下一个命令也需要工作。 这里有一个子问题,但在我的情况下很重要:我可以设置哪些命令是有条件的,哪些不是(