系統自身的error處理一般是 errors.New()或fmt.Errorf()等,對一些需要復雜顯示的,不太友好,我們可以擴展下error,
error在標準庫中被定義為一個介面型別,該介面只有一個Error()方法
type error interface {
Error() string
}
那么,自定義error只要擁有Error()方法,就實作了error介面,這里我們用結構體來擴展
package errors
import (
"encoding/json"
)
type Err struct {
Code int
Msg string
}
func (e *Err) Error() string {
err, _ := json.Marshal(e)
return string(err)
}
func New(code int, msg string) *Err {
return &Err{
Code: code,
Msg: msg,
}
}
呼叫
func main(){
fmt.Println(errors.New(401,"無此權限"))
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/51181.html
標籤:Go
上一篇:golang資料庫操作初體驗
