"إذا أراد العامل أن يؤدي عمله بشكل جيد، فعليه أولاً أن يشحذ أدواته." - كونفوشيوس، "مختارات كونفوشيوس. لو لينجونج"
الصفحة الأمامية > برمجة > كيف تتعامل مع الأخطاء أثناء تنظيم JSON في Golang؟

كيف تتعامل مع الأخطاء أثناء تنظيم JSON في Golang؟

تم النشر بتاريخ 2024-11-12
تصفح:197

How do you Handle Errors During JSON Marshalling in Golang?

معالجة الأخطاء في Golang JSON Marshalling

لا يمكن لهياكل بيانات JSON أن تمثل مراجع دورية، ولا يمكن لوظيفة json.Marshal الخاصة بـ Go التعامل معها. ونتيجة لذلك، يؤدي تمرير الهياكل الدورية إلى Marshal إلى عودية لا نهائية وحالة من الذعر أثناء التشغيل.

بعيدًا عن الهياكل الدورية، يمكن لـ json.Marshal أيضًا إرجاع أخطاء غير صفرية في المواقف التي يواجه فيها أنواعًا غير مدعومة أو قيمًا غير صالحة.

الأنواع غير المدعومة

يقوم Marshal بإرجاع خطأ غير مدعوم عندما محاولة تنظيم نوع بيانات غير مدعوم. على سبيل المثال:

import "encoding/json"

func main() {
    ch := make(chan int)
    _, err := json.Marshal(ch)
    if _, ok := err.(*json.UnsupportedTypeError); ok {
        // Error: Unmarshal: unsupported type: chan int
    }
}

القيم غير المدعومة يمكن أن يقوم Marshal أيضًا بإرجاع خطأ UnsupportedValueError عند محاولة تنظيم قيمة غير صالحة. على سبيل المثال:

استيراد ( "الترميز/json" "الرياضيات" ) الوظيفة الرئيسية () { إنفينيتي الإيجابية := math.Inf(1) _، خطأ := json.Marshal(positiveInfinity) if _, ok := err.(*json.UnsupportedValueError); نعم { // خطأ: json: قيمة غير مدعومة: Inf }
import (
    "encoding/json"
    "math"
)

func main() {
    positiveInfinity := math.Inf(1)
    _, err := json.Marshal(positiveInfinity)
    if _, ok := err.(*json.UnsupportedValueError); ok {
        // Error: json: unsupported value:  Inf
    }
}
أحدث البرنامج التعليمي أكثر>

تنصل: جميع الموارد المقدمة هي جزئيًا من الإنترنت. إذا كان هناك أي انتهاك لحقوق الطبع والنشر الخاصة بك أو الحقوق والمصالح الأخرى، فيرجى توضيح الأسباب التفصيلية وتقديم دليل على حقوق الطبع والنشر أو الحقوق والمصالح ثم إرسالها إلى البريد الإلكتروني: [email protected]. سوف نتعامل مع الأمر لك في أقرب وقت ممكن.

Copyright© 2022 湘ICP备2022001581号-3