golang自定義error


系統自身的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,"無此權限"))
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM