"일꾼이 일을 잘하려면 먼저 도구를 갈고 닦아야 한다." - 공자, 『논어』.
첫 장 > 프로그램 작성 > Golang에서 JSON 마샬링 중 오류를 어떻게 처리합니까?

Golang에서 JSON 마샬링 중 오류를 어떻게 처리합니까?

2024년 11월 12일에 게시됨
검색:927

How do you Handle Errors During JSON Marshalling in Golang?

Golang JSON 마샬링의 오류 처리

JSON 데이터 구조는 순환 참조를 나타낼 수 없으며 Go의 json.Marshal 함수는 이를 처리할 수 없습니다. 결과적으로 순환 구조를 Marshal에 전달하면 무한 재귀 및 런타임 패닉이 발생합니다.

순환 구조 외에도 json.Marshal은 지원되지 않는 유형이나 유효하지 않은 값이 발생하는 상황에서 nil이 아닌 오류를 반환할 수도 있습니다.

지원되지 않는 유형

Marshal은 다음을 시도할 때 UnsupportedTypeError를 반환합니다. 지원되지 않는 데이터 유형을 마샬링합니다. 예:

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를 반환할 수도 있습니다. 예를 들어:

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
    }
}

이러한 조건을 이해함으로써 개발자는 오류를 적절하게 처리하고 json.Marshal이 예상 결과를 반환하거나 적절한 오류를 처리하도록 보장할 수 있습니다.

최신 튜토리얼 더>

부인 성명: 제공된 모든 리소스는 부분적으로 인터넷에서 가져온 것입니다. 귀하의 저작권이나 기타 권리 및 이익이 침해된 경우 자세한 이유를 설명하고 저작권 또는 권리 및 이익에 대한 증거를 제공한 후 이메일([email protected])로 보내주십시오. 최대한 빨리 처리해 드리겠습니다.

Copyright© 2022 湘ICP备2022001581号-3