ホームページ  >  記事  >  バックエンド開発  >  golangのエラーコード

golangのエラーコード

PHPz
PHPzオリジナル
2023-05-21 20:21:36672ブラウズ

Golang は比較的新しいプログラミング言語ですが、そのシンプルさ、効率性、学習のしやすさにより、ここ数年で高レベルのプログラミング言語として高く評価されています。エラー処理は、Golang コードを記述する上で避けられない部分です。この記事では、Golang のエラー処理メカニズムと一般的なエラー コードについて説明します。

Golang でのエラー処理

Golang のエラー処理メカニズムは、主にエラーの種類に依存します。関数はエラー型の値を返すことができ、この値は、値が nil かどうかをチェックできる関数が呼び出されます。 nil でない場合は、関数がエラーを返したことを意味し、呼び出し元はこのエラーを処理し、適切な操作を実行する必要があります。 nil の場合、関数が正常に実行されたことを意味します。

Golang でエラーを返す方法を示す簡単な例を次に示します:

func divide(a, b float64) (float64, error) {
    if b == 0 {
        return 0, errors.New("division by zero")
    }
    return a / b, nil
}

func main() {
    result, err := divide(6, 0)
    if err != nil {
        fmt.Println("Error:", err)
        return
    }
    fmt.Println(result)
}

上の例では、除算関数は分母が 0 かどうかをチェックします。 0 の場合、エラー メッセージ「ゼロ除算」を含む新しいエラー タイプ値が返されます。 main 関数では、返されたエラー値が nil かどうかを確認し、そうでない場合はエラー メッセージを出力します。

エラー コード

エラー タイプに加えて、Golang にはエラー コードというエラー処理メカニズムもあります。エラー コードは、さまざまな種類のエラーを識別する整数値です。通常、これらのエラー コードはパッケージ レベルの変数で定義され、複数の関数間で共有されます。

次は、エラー コードを使用する関数を示す例です:

var (
    ErrBadRequest  = errors.New("bad request")
    ErrUnauthorized = errors.New("unauthorized")
)

func getUser(userId int) (user, int, error) {
    if userId <= 0 {
        return user{}, 0, ErrBadRequest
    } else if userId == 123 {
        return user{name: "Alice", age: 30}, 200, nil
    }
    return user{}, 0, ErrUnauthorized
}

func main() {
    user, status, err := getUser(123)
    if err != nil {
        if err == ErrBadRequest {
            fmt.Println("Error:", err)
            // 返回 400 所代表的错误码
            return
        } else if err == ErrUnauthorized {
            fmt.Println("Error:", err)
            // 返回 401 所代表的错误码
            return
        }
    }
    fmt.Println("User:", user)
    fmt.Println("Status:", status)
}

この例では、ErrBadRequest と ErrUnauthorized という 2 つのエラー コードを定義します。 getUser 関数では、渡されたユーザー ID が 0 以下の場合は ErrBadRequest が返され、ユーザー ID が 123 に等しい場合は、ユーザー構造体、ステータス コード 200 および nil が返され、成功を示します。それ以外の場合は、ErrUnauthorized が返されます。戻ってきた。

main関数では、エラータイプの値を確認します。エラーが ErrBadRequest の場合は HTTP エラー コード 400 を返し、エラーが ErrUnauthorized の場合は 401 を返します。それ以外の場合は、ユーザーとステータス コードに関する情報が出力されます。

概要

Golang のエラー処理メカニズムを使用すると、開発者はハンドラー関数内のエラーと例外を簡単に識別できます。エラー タイプは Golang のエラー処理の中核であり、基本的なエラー情報と処理方法を提供します。エラー コード メカニズムは、より柔軟なエラー処理方法を提供し、エラー タイプごとに異なるエラー コードを定義できます。エラー コード メカニズムは、多数のエラーを処理する場合に、より洗練されたソリューションを提供します。エラー コードを使用するかエラー オブジェクトを使用するかに関係なく、ビジネス ニーズに基づいて適切なエラー処理メカニズムを選択する必要があります。

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

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