Golang错误处理

时间:2016-06-02 14:56:07

标签: 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)
            }

        }
    }
}

我需要程序将在发生错误时从头开始执行。

如何处理?

1 个答案:

答案 0 :(得分:7)

使用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 RESTART继续循环RESTART标签。在这个简单的例子中,仅使用break也将继续外部循环。