>  기사  >  백엔드 개발  >  Go에서 특정 오류를 어떻게 캡처합니까?

Go에서 특정 오류를 어떻게 캡처합니까?

DDD
DDD원래의
2024-11-06 18:32:03926검색

How do I Capture Specific Errors in Go?

Go에서 특정 오류 캡처

오류를 반환하는 표준 Go 라이브러리 함수와 상호작용할 때 특정 유형을 식별하고 처리하는 것이 유용할 수 있습니다. "연결이 끊어졌습니다" 또는 "연결이 거부되었습니다"와 같은 오류. 이를 달성하는 방법은 다음과 같습니다.

errors.Is 및 오류.As 사용

최신 Go 버전의 경우 권장되는 접근 방식은 오류.Is 및 오류를 사용하는 것입니다. 표준 라이브러리의 함수로. 이러한 기능을 사용하면 오류가 특정 유형과 일치하는지 확인하거나 오류 정보의 하위 집합을 추출할 수 있습니다. 예:

if errors.Is(err, syscall.ECONNREFUSED) {
    // err is a connection refused error
}

오류 문자열 일치

표준 라이브러리 함수가 특정 오류 유형을 제공하지 않는 경우 오류 문자열을 비교할 수 있습니다.

if err.Error() == "connection lost" {
    // err contains "connection lost" error
}

특정 오류 유형 확인

일부 라이브러리는 직접 확인할 수 있는 특정 오류 유형을 내보낼 수 있습니다.

if _, ok := err.(net.Error); ok {
    // err is a net.Error instance
}

모두 결정 가능한 오류

표준 라이브러리 함수에서 반환된 가능한 모든 오류를 식별하려면 소스 코드를 읽어야 합니다. 또는 오류가 자주 설명되는 net 패키지의 godoc과 같은 문서를 검사할 수 있습니다.

위 내용은 Go에서 특정 오류를 어떻게 캡처합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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