go - 将错误变量初始化为错误指针
问题描述
尝试在单个 defer 函数中处理所有错误。但是 err 不能分配为指向错误的指针吗?因为它给了我无效的内存地址错误
package main
import (
"fmt"
"errors"
)
func main() {
var err *error
defer func(err *error) {
if *err != nil {
fmt.Println("hi")
} else {
fmt.Println("oh")
}
}(err)
*err = errors.New("EMPTY_BODY")
}
解决方案
我从来不需要传递指针
package main
import (
"fmt"
"errors"
)
func main() {
var err error
defer func() {
if err != nil {
fmt.Println("hi")
} else {
fmt.Println("oh")
}
}()
err = errors.New("EMPTY_BODY")
}
我认为我需要,因为 defer 在那个时候而不是在函数结束时取 err 的值。
推荐阅读
- reactjs - 单击按钮后聚焦输入
- php - 如何从父组件访问动态创建的子组件的数据
- sql - 使用 generate series 填充缺失值
- git - 主分支已经存在
- azure - 集群创建 HdInsight 和核心分配。调整 apache spark 提交
- c# - .Net Core 3.1 和 .Net 5.0 是否支持 XPath 2.0?
- json - 使用 RestAssured JsonPath 在列表的索引处获取 JSON 响应列
- ios - scene(openURLContexts) 或 scene(willConnectTo) 什么时候会有多个 urlContexts?
- php - PHP 致命错误:未捕获的错误:类 'WooGateWayCoreLib\admin\options\functions\Coin_List'
- python - Pandas read_csv 给出十进制列数