>  기사  >  백엔드 개발  >  Golang의 json.Marshal에서 오류를 처리하는 방법은 무엇입니까?

Golang의 json.Marshal에서 오류를 처리하는 방법은 무엇입니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-11-03 05:42:30475검색

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.