Go でのエラー メッセージの比較
Java でエラーを処理する場合、開発者はエラーの説明を抽出するために Exception.GetMessage() メソッドに依存することがよくあります。 。ただし、Golang にはそのようなメッセージを取得する組み込みメソッドがありません。
これに対処するために、Go 開発者はエラー メッセージを比較するためのカスタム アプローチを採用しています。エラー オブジェクト内にメッセージを保存する代わりに、特定のエラー コードまたは説明をカプセル化するパッケージ レベルのエラー変数を作成します。
var errExample = errors.New("this is an example")
エラーを返すとき、開発者はこれらの変数を割り当てて、発生したエラーの特定の種類を示します。 。次のスニペットは、このアプローチを示しています。
if some_err := some_package.DoSomething(); some_err != nil { if some_err == errExample { // handle it } }
この場合、if ステートメントは、DoSomething() によって返されたエラーが errExample 変数と同一かどうかをチェックします。存在する場合、エラーはそれに応じて処理されます。
これらのエラー変数の範囲を拡張するには、開発者は、export キーワードを使用してパッケージの外に変数をエクスポートできます。
var ErrExample = errors.New("this is an example")
これにより、さまざまなコードが可能になります。エクスポートされたエラー変数と比較するパッケージ:
if err == somepackage.ErrExample { // handle it }
このアプローチに従うことで、開発者は Golang 言語に不足している場合でも、Golang でエラー メッセージを効果的に比較できます。専用の GetMessage() メソッド。
追加の考慮事項:
error.Error() メソッドによって返された文字列とエラー メッセージを比較しないことが重要です。エラー メッセージは時間の経過とともに変化する可能性があるため、コードが脆弱になる可能性があります。代わりに、エラー処理の一貫性を確保するために、確立されたエラー変数を使用することをお勧めします。
以上がGo 開発者は「GetMessage()」メソッドを使用せずにエラー メッセージをどのように比較しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。