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)
}
}
}
}
我需要程序将在发生错误时从头开始执行。
如何处理?
答案 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
也将继续外部循环。