ホームページ >バックエンド開発 >Golang >Golang の json.Marshal のエラーを処理するにはどうすればよいですか?

Golang の json.Marshal のエラーを処理するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-11-03 05:42:30562ブラウズ

How to Handle Errors in Golang's json.Marshal?

golang の json.Marshal でのエラー処理のデモ

json.Marshal では、循環データ構造または無効な入力の型/値が原因でエラーが発生する可能性があります。これらのシナリオを理解するために、いくつかの例を見てみましょう。

巡回データ構造

json.Marshal は巡回データ構造のマーシャルに失敗し、無限再帰と実行時パニックを引き起こします。ただし、非循環構造は正常にマーシャリングできます。

無効な入力型

json.Marshal では、無効な入力型が指定された場合にもエラーが発生する可能性があります。たとえば、チャネルをマーシャリングしようとすると、型に互換性がないため、UnsupportedTypeError が発生します。

<code class="go">_, err := json.Marshal(make(chan int))
if _, ok := err.(*json.UnsupportedTypeError); !ok {
    fmt.Println("Unexpected error type:", err)
}</code>

無効な入力値

無効な入力値によっても、json.Marshal でエラーが発生する可能性があります。 math.Inf や math.NaN などの値をマーシャリングすると、UnsupportedValueError が返されます。

<code class="go">_, err := json.Marshal(math.Inf(1))
if _, ok := err.(*json.UnsupportedValueError); !ok {
    fmt.Println("Unexpected error type:", err)
}</code>

これらのエラー シナリオを理解することで、開発者は json.Marshal のエラーを積極的に処理または防止し、データの整合性と信頼性を確保できます。処理中です。

以上がGolang の json.Marshal のエラーを処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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