Bagaimana untuk Mengendalikan Ralat dalam json.Marshal Golang?

Mary-Kate Olsen
Lepaskan: 2024-11-03 05:42:30
asal
473 orang telah melayarinya

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

Menunjukkan Pengendalian Ralat dalam json.Marshal golang

Ralat dalam json.Marshal boleh berlaku disebabkan oleh struktur data kitaran atau jenis/nilai input yang tidak sah. Untuk memahami senario ini, mari kita periksa beberapa contoh.

Struktur Data Kitaran

json.Marshal gagal menyusun struktur data kitaran, yang membawa kepada pengulangan yang tidak terhingga dan panik masa jalan. Walau bagaimanapun, struktur bukan kitaran boleh berjaya disusun.

Jenis Input Tidak Sah

json.Marshal juga boleh menghadapi ralat apabila dibentangkan dengan jenis input yang tidak sah. Sebagai contoh, percubaan untuk menyusun saluran akan mengakibatkan UnsupportedTypeError disebabkan oleh jenisnya yang tidak serasi.

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

Nilai Input Tidak Sah

Nilai input tidak sah juga boleh mencetuskan ralat dalam json.Marshal. Nilai Marshalling seperti math.Inf atau math.NaN akan mengembalikan UnsupportedValueError.

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

Dengan memahami senario ralat ini, pembangun boleh secara proaktif mengendalikan atau mencegah ralat dalam json.Marshal, memastikan integriti dan kebolehpercayaan data mereka pemprosesan.

Atas ialah kandungan terperinci Bagaimana untuk Mengendalikan Ralat dalam json.Marshal Golang?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!