gpt4 book ai didi

go - 对多级返回的 panic

转载 作者:IT王子 更新时间:2023-10-29 01:21:01 26 4
gpt4 key购买 nike

是否有更好的方法从长序列的递归函数调用中返回?我目前对这样的标记值感到 panic :

type exitNow int
...
panic(exitnow(0))

一次返回多个级别。在根函数中,对 recover 的调用执行一般错误处理(将 panic 转化为错误)并将 exitNow 处理为特殊情况。

这很好,我只是想知道是否有更好的方法。

我已经将 bool 返回值用于相关目的,但为此使用另一个返回值会很痛苦。 (对每个函数的每次调用都需要一个 if 语句)

如果它有任何帮助,这就是递归体面解析器实现的一部分。

最佳答案

我自己在我的解析器中使用这种方法。不过,我不会对整数值感到 panic 。我使用实际的当前错误作为 panic 消息。执行 recover() 的顶级调用只是附加一些文件/行/列信息,然后将其作为常规 错误 返回。

这个方法,以及从所有函数返回错误是 Go 中唯一的方法。 panic 方法对于解析器的情况要有效得多,因为它使词法分析器规则的实现(和阅读)变得相当简单,因为没有 if err != nil { return } 部分散落各处.

关于go - 对多级返回的 panic ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13650493/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com