自定义错误结构在Golang中的实现

huangapple go评论146阅读模式
英文:

Customizing error structure in Golang

问题

在golang中,错误消息的默认结构包含一个字符串,但我想要在其中添加动态响应代码和错误发生的时间。对此有什么建议吗?

英文:

The default structure for error messages in golang contains a string but I want to add dynamic response code and the time the error occurred to it. Any suggestions on how to do it?

答案1

得分: 3

error 不是一个结构体,而是一个接口。

type error interface {
    Error() string
}

你可以定义自己的错误结构体,只需实现 Error() string 函数。

type ErrorA struct {
    // 任何你想要的字段
}

func (e ErrorA) Error() string {
    // 实现这个函数
}

然后可以将 ErrorA 用作 error

参考:

  1. https://golang.org/ref/spec#Errors
  2. https://golang.org/ref/spec#Interface_types
英文:

error in not a struct, is an interface.

type error interface {
	Error() string
}

you can define your own error struct, just implement the Error() string function.

type ErrorA struct {
	// any field you want
}

func (e ErrorA) Error() string {
	// implement this function
}

then ErrorA can be used as error.

ref:

  1. https://golang.org/ref/spec#Errors
  2. https://golang.org/ref/spec#Interface_types

huangapple
  • 本文由 发表于 2017年5月3日 12:30:19
  • 转载请务必保留本文链接:https://go.coder-hub.com/43751095.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定