> 백엔드 개발 > Golang > Go에서 오류를 처리하는 모범 사례는 무엇입니까?

Go에서 오류를 처리하는 모범 사례는 무엇입니까?

Linda Hamilton
풀어 주다: 2024-12-31 05:28:13
원래의
1035명이 탐색했습니다.

What are the Best Practices for Handling Errors in Go?

Go의 표준 오류 처리기

Go에는 오류 처리를 위한 몇 가지 관용적인 접근 방식이 있습니다.

1. 오류변수 수정

var (
    ErrSomethingBad = errors.New("some string")
    ErrKindFoo      = errors.New("foo happened")
)
로그인 후 복사

2. 오류 유형

type SomeError struct {
    ExtraInfo int
}
func (e SomeError) Error() string { /* … */ }
로그인 후 복사

3. 임시 오류

func SomepackageFunction() error {
    return errors.New("not implemented")
}
로그인 후 복사

4. 표준 라이브러리 오류

func SomeFunc() error {
    return io.EOF
}
로그인 후 복사

5. 오류 인터페이스

type Error interface {
    error
    Timeout() bool
    Temporary() bool
}
로그인 후 복사

6. 래핑 오류(Go 1.13 )

func SomepackageFunction() error {
    err := somethingThatCanFail()
    if err != nil {
        return fmt.Errorf("some context: %w", err)
    }
}
로그인 후 복사

올바른 접근 방식 선택

선호되는 방법은 다음과 같습니다.

  • 수정된 오류 사용자가 테스트할 수 있는 오류에 대한 변수 또는 오류 유형 구체적으로.
  • 테스트할 가능성이 없는 사소한 오류에 대한 임시 오류 또는 표준 라이브러리 오류.
  • 특정 동작이나 속성이 있는 오류에 대한 오류 인터페이스.
  • 다음에 대한 래핑된 오류 기존 오류에 컨텍스트 추가(Go 1.13 ).

장점:

  • 고정 오류 변수: 테스트 및 비교가 쉽습니다.
  • 오류 유형: 오류에 대한 추가 정보로 확장 가능 처리.
  • 임시 오류: 사소한 오류에 대해 간결합니다.
  • 오류 인터페이스: 특정 오류 동작을 적용하고 다형성을 촉진합니다.
  • 래핑된 오류: 사용자 정의 오류를 생성하지 않고 컨텍스트 제공 유형.

추가 자료:

  • [오류 시 효과적인 이동](https://go.dev/doc/articles/errors)
  • [The Go Blog: 오류 처리 및 이동](https://blog.golang.org/error-handling-and-go)
  • [Dave Cheney: 오류 검사](https://dave.cheney.net/2016/04/07 /inspecting-errors)
  • [Peter Bourgon: 프로그래밍 오류](https://go.dev/blog/errors)

위 내용은 Go에서 오류를 처리하는 모범 사례는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿