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