Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Golang错误处理 主程序包 导入“时间” func main(){ //无限循环 为了{ 对于i:=0;i_Go - Fatal编程技术网

Golang错误处理 主程序包 导入“时间” func main(){ //无限循环 为了{ 对于i:=0;i

Golang错误处理 主程序包 导入“时间” func main(){ //无限循环 为了{ 对于i:=0;i,go,Go,我需要程序将执行从一开始,如果一个错误块发生 如何处理它?使用goto是处理嵌套循环中错误流的常用方法 package main import "time" func main() { // infinite loop for { for i := 0; i < 2; i++ { conn, err := opentsdb.OpenConnection() if err {

我需要程序将执行从一开始,如果一个错误块发生


如何处理它?

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

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)
            }

        }
    }
}
func main(){
重新启动:
为了{
对于i:=0;i<2;i++{
conn,err:=opentsdb.OpenConnection()
如果出错{
时间。睡眠(10*时间。秒)
转到重新启动
}
}
}
}

如果您只想重新启动外部循环,而
restart
标签和
for
循环之间没有任何内容,则可以使用
continue restart
restart
标签处继续循环。在这个简单的例子中,仅仅使用
break
也将继续外部循环

你是对的——for循环将永远运行。要求是什么?如果出现错误,是否希望程序退出?这个问题不清楚你想做什么。“处理它”可以指很多事情。@icza:是的,这在这里也适用。我只是假设这样一个简单的示例可能缺少其他逻辑,否则您也可以在这里中断。
func main() {
RESTART:
    for {
        for i := 0; i < 2; i++ {
            conn, err := opentsdb.OpenConnection()
            if err {
                time.Sleep(10 * time.Second)
                goto RESTART
            }
        }
    }
}