Heim  >  Artikel  >  Backend-Entwicklung  >  Wie Golang Fehler definiert

Wie Golang Fehler definiert

angryTom
angryTomOriginal
2020-03-14 16:36:473239Durchsuche

Wie Golang Fehler definiert

Wie Golang Fehler definiert

Während des Entwicklungsprozesses, als der von der Standardbibliothek zurückgegebene Fehlerinhalt unsere Anforderungen nicht mehr erfüllen konnte, haben wir eingebaut. error in go ist eine Schnittstelle,

Verwandte Empfehlungen: Golang-Tutorial

type error interface {
    Error() string
}

Sie müssen also nur eine Struktur erstellen, die die String-Funktion Error() enthält.

1. Erstellen Sie ein neues Fehlerpaket unter go path

vim $GOPATH/github.com/mypractise/error/errors.go

package errors

type Error struct {
    ErrCode int
    ErrMsg  string
}

func NewError(code int, msg string) *Error {
    return &Error{ErrCode: code, ErrMsg: msg}
}

func (err *Error) Error() string {
    return err.ErrMsg
}

2. Starten Sie den Aufruf des Fehlerpakets

vim ./test.go

package main

import (
    "encoding/json"
    "errors"
    "fmt"

    myerr "github.com/mypractise/errors"
)

func myErr() error {

    err := myerr.NewError(2, "err test")
    return err
}

func staErr() error {
    m := make(map[string]string)
    err := json.Unmarshal([]byte(""), m)
    if err != nil {
        return err
    }

    return errors.New("aaaaa")
}

func main() {
    err1 := staErr()
    fmt.Println("------sta err:", err1.Error())

    err2 := myErr()
    fmt.Println("------my err:", err2.Error(), err2.(*myerr.Error).ErrCode)
}

3. Führen Sie den Test aus

go run ./test.go

PHP-Chinesisch-Website, eine große Anzahl von Programmier-Tutorials und Tutorials zum Aufbau von Websites können gerne erlernt werden.

Das obige ist der detaillierte Inhalt vonWie Golang Fehler definiert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn