分享
这是一个创建于 的主题,其中的信息可能已经有所发展或是发生改变。
我希望在项目中自定义一个error. 参考了 [链接](https://studygolang.com/articles/12045) 然后设计了自己的error.
我希望将自定义的error以json string的形式输入到日志上. 所以重写了`Error()` 方法.
问题点: 如果自定义Error的Err没有输出, 请问问题点在哪里呢?
```go
package main
import (
"encoding/json"
"errors"
"fmt"
)
type Error struct {
Op string
Kind int
Err error
}
func (e Error) Error() string {
b, _ := json.Marshal(&e)
return string(b[:])
}
func main() {
err := Error{
Op: "main",
Kind: 1,
Err: Error{
Op: "sub",
Kind: 2,
Err: errors.New("message"),
},
}
fmt.Println(err)
}
// 输出
// {"Op":"main","Kind":1,"Err":{"Op":"sub","Kind":2,"Err":{}}}
```
有疑问加站长微信联系(非本文作者)
入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889
关注微信1180 次点击
添加一条新回复
(您需要 后才能回复 没有账号 ?)
- 请尽量让自己的回复能够对别人有帮助
- 支持 Markdown 格式, **粗体**、~~删除线~~、
`单行代码` - 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
- 图片支持拖拽、截图粘贴等方式上传