func updateCheck() (bool, string) {
defer func() {
if err := recover(); err != nil {
glog.Error("检测版本失败:", err)
return false, "检测版本失败"
}
}()
//核心业务代码,可能会有语句抛出panic
//...
}
为什么这里defer中检测到异常,不能返回东西?
return false, "检测版本失败"
这一行报错,显示“to many arguments”.
检测到异常应该如何返回信息,而不是直接抛出异常。
参考
可以换一种方式:
golang 的返回值是可以有名字的。虽然不能直接返回新的,但是可以改。