Maison > développement back-end > Golang > Comment gérer les erreurs dans json.Marshal de Golang ?

Comment gérer les erreurs dans json.Marshal de Golang ?

Mary-Kate Olsen
Libérer: 2024-11-03 05:42:30
original
557 Les gens l'ont consulté

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

Démonstration de la gestion des erreurs dans json.Marshal de Golang

Dans json.Marshal, des erreurs peuvent survenir en raison de structures de données cycliques ou de types/valeurs d'entrée non valides. Pour comprendre ces scénarios, examinons quelques exemples.

Structures de données cycliques

json.Marshal ne parvient pas à rassembler les structures de données cycliques, conduisant à une récursivité infinie et à une panique d'exécution. Cependant, les structures non cycliques peuvent être marshalées avec succès.

Type d'entrée non valide

json.Marshal peut également rencontrer des erreurs lorsqu'il est présenté avec des types d'entrée non valides. Par exemple, tenter de marshaler un canal entraînera une UnsupportedTypeError en raison de son type incompatible.

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

Valeur d'entrée non valide

Des valeurs d'entrée non valides peuvent également déclencher des erreurs dans json.Marshal. Le regroupement de valeurs telles que math.Inf ou math.NaN renverra une UnsupportedValueError.

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

En comprenant ces scénarios d'erreur, les développeurs peuvent gérer ou empêcher de manière proactive les erreurs dans json.Marshal, garantissant ainsi l'intégrité et la fiabilité de leurs données. traitement.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal