ホームページ > バックエンド開発 > Golang > golang 関数のエラー処理における国際化

golang 関数のエラー処理における国際化

王林
リリース: 2024-05-05 09:24:02
オリジナル
798 人が閲覧しました

GoLang 関数は、エラー パッケージの Wrapf 関数と Errorf 関数を通じてエラーの国際化を実行できます。これにより、ローカライズされたエラー メッセージを作成し、他のエラーに追加してより高レベルのエラーを形成します。 Wrapf 関数を使用すると、低レベルのエラーを国際化して、「ファイル %s を開くときにエラーが発生しました」などのカスタム メッセージを追加できます。

golang 関数のエラー処理における国際化

GoLang 関数エラー処理における国際化

GoLang は強力なエラー処理メカニズムを提供しますが、デフォルトではエラー メッセージは英語です。これにより、多言語アプリケーションで問題が発生する可能性があります。この記事では、エラー国際化のために errors パッケージの Wrapf 関数と Errorf 関数を使用する方法について説明します。

Errorf の使用

Errorf 関数は、フォーマットされたエラー情報を含む新しいエラーを作成するために使用されます。この関数を使用すると、ローカライズされたエラー メッセージを作成できます。

import (
    "fmt"
)

func main() {
    err := fmt.Errorf("操作失败:%w", myError)
}
ログイン後にコピー

上記のコードは、myError からのエラー メッセージを含む新しいエラーを作成します。

Wrapf

Wrapf 関数の使用は、「他のエラーの中で」に追加された書式設定されたエラーを含む新しいエラーを作成するために使用されます。 。これは、低レベルのエラーを高レベルのエラーに変換するのに役立ちます。

import (
    "errors"
    "fmt"
)

func main() {
    err := errors.Wrapf(myError, "文件打开失败:%w")
}
ログイン後にコピー

上記のコードは、myError からのエラー メッセージを含む新しいエラーを作成し、「ファイル オープンに失敗しました」情報を追加します。

実際的なケース

次に、間違った国際化を使用する実際的なケースを示します:

import (
    "errors"
    "fmt"
    "io"
)

func main() {
    if err := readFile("file.txt"); err != nil {
        log.Println(err)
    }
}

func readFile(filename string) error {
    file, err := os.Open(filename)
    if err != nil {
        return errors.Wrapf(err, "打开文件 %s 出错", filename)
    }
    defer file.Close()

    //从文件中读取数据
}
ログイン後にコピー

この例では、readFile 関数Wrapf 関数を使用した国際化ファイルのオープン エラー。ファイルを開けない場合、log.Println は、ファイルを開けないことをユーザーに通知するローカライズされたエラー メッセージを出力します。

結論

errors パッケージの Wrapf 関数と Errorf 関数を使用すると、 GoLang 関数のエラー メッセージを簡単に国際化できます。これは、ユーザーが自分の言語で意味のあるエラー メッセージを確認できるため、多言語アプリケーションにとって重要です。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート