ホームページ  >  記事  >  バックエンド開発  >  Golang がエラーを定義する方法

Golang がエラーを定義する方法

angryTom
angryTomオリジナル
2020-03-14 16:36:473319ブラウズ

Golang がエラーを定義する方法

Golang によるエラーの定義方法

開発プロセス中、標準ライブラリから返されるエラーの内容がニーズを満たせなくなったとき、 go のエラーはインターフェイスです。

関連する推奨事項: golang チュートリアル

type error interface {
    Error() string
}

したがって、必要なのは Error() 文字列関数を含む構造体を作成することだけです。

1. 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. エラー package

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 の呼び出しを開始します。test

go run ./test.go

を実行します。 PHP 中国語 Web サイト、多数のプログラミング チュートリアル、Web サイト構築チュートリアル、学習へようこそ。

以上がGolang がエラーを定義する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。