Golang 错误处理

标签 go

package main

import "time"

func main() {
    // infinite loop
    for {

        for i := 0; i < 2; i++ {

            conn, err := opentsdb.OpenConnection()

            if err {
                time.Sleep(10 * time.Second)
            }

        }
    }
}

如果发生错误 block ,我需要程序从头开始执行。

如何处理?

最佳答案

使用 goto 是处理嵌套循环中错误流的常用方法

func main() {
RESTART:
    for {
        for i := 0; i < 2; i++ {
            conn, err := opentsdb.OpenConnection()
            if err {
                time.Sleep(10 * time.Second)
                goto RESTART
            }
        }
    }
}

如果你只想重启外层循环,而RESTART标签和for循环之间没有任何东西,你可以使用continue RESTARTRESTART 标签处继续循环。在这个简单的例子中,仅使用 break 也将继续外循环。

关于Golang 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595358/

相关文章:

戈朗 : Why do I get +Inf instead of an integer or a float?

go - 如何从函数返回 slice 的更改值?

go - 如何在 Go 中嵌套结构

Golang 依赖管理最佳实践

json - 使用 Golang 解析 Json

go - 如何通过从指针读取类型来创建实例

go - 在 golang 中使用发送网格?

Golang swagger 返回 404 not found

git - Go 模块未下载最新的次要版本

go lang,看不懂这段代码是做什么的