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 RESTART
在 RESTART
标签处继续循环。在这个简单的例子中,仅使用 break
也将继续外循环。
关于Golang 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37595358/