Go でのエラー メッセージの比較
Java では、GetMessage() を使用して例外からエラー メッセージを取得できます。ただし、Go では、エラーの種類に対して定義された同等のメソッドはありません。代わりに、カスタム エラー処理手法を使用する必要があります。
カスタム エラー処理
1 つの方法は、必要な特定のエラー メッセージを表すパッケージ レベルの変数を定義することです。をチェックしてください。例:
var errExample = errors.New("this is an example")
エラーを返すとき、一般的なエラー文字列の代わりにこの変数を使用できます:
if err := some_package.DoSomething(); err != nil { if err == errExample { // handle it however. } }
エラー変数のエクスポート
パッケージ外のコードがエラーにアクセスする必要がある場合は、大文字を使用して変数をエクスポートできます。文字:
var ErrExample = errors.New("this is an example")
これにより、エクスポートされた変数とエラーを比較できます:
if err == somepackage.ErrExample { // handle it }
例
落とし穴: 文字列を避ける比較
エラーの Error() メソッドによって返された文字列と比較したいという誘惑に抵抗してください。これにより、コードが脆弱になる可能性があります。例:
if err.Error() == "this is an example" { // this is not recommended }
代わりに、上で概説したカスタム エラー処理アプローチを使用します。
以上がJava の GetMessage() とは異なり、Go でエラーを効果的に比較して処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。