【发布时间】:2021-02-17 14:14:19
【问题描述】:
我想使用标签来最小化这样的错误部分:
package main
import (
"fmt"
consul "github.com/hashicorp/consul/api"
"os"
)
func main(){
client,err := consul.NewClient(consul.DefaultConfig())
if err != nil {
goto Err
}
agent := client.Agent()
checkReg := agent.AgentCheckRegistration{
ID: "test-check",
Name: "test-check",
Notes: "some test check",
}
if err = agent.CheckRegister(checkReg); err !=nil{
goto Err
}
Err:
fmt.Println(err)
os.Exit(2)
}
所以我可以在一个地方将所有错误处理放在一个地方,但似乎无法正常工作
./agent.CheckRegister.go:10:8: goto Err jumps over declaration of checkReg at
./agent.CheckRegister.go:13:19: agent.AgentCheckRegistration undefined (type *api.Agent has no field or method AgentCheckRegistration)
有没有办法使用 goto 让它工作?
【问题讨论】:
-
不,错误解释了原因。预先声明所有内容,使用条件块或可以提前返回的函数
-
@JimB 好的,谢谢。