grpcerrors

package
v0.28.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 3, 2026 License: Apache-2.0 Imports: 16 Imported by: 162

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AsGRPCStatus

func AsGRPCStatus(err error) (*status.Status, bool)

AsGRPCStatus tries to extract a gRPC status from the error. Supports `Unwrap() error` and `Unwrap() []error` for wrapped errors. When the `Unwrap() []error` returns multiple errors, the first one that contains a gRPC status that is not OK is returned with the full error message.

func Code

func Code(err error) codes.Code

Code returns the gRPC status code for the given error. If the error type has a `Code() codes.Code` method, it is used. If the error type has a `GRPCStatus() *status.Status` method, its code is used. As a fallback: Supports `Unwrap() error` and `Unwrap() []error` for wrapped errors. When the `Unwrap() []error` returns multiple errors, the first one that contains a non-OK code is returned. Finally, if the error is a context error, the corresponding code is returned.

func FromGRPC

func FromGRPC(err error) error

func StreamClientInterceptor

func StreamClientInterceptor(ctx context.Context, desc *grpc.StreamDesc, cc *grpc.ClientConn, method string, streamer grpc.Streamer, opts ...grpc.CallOption) (grpc.ClientStream, error)

func StreamServerInterceptor

func StreamServerInterceptor(srv any, ss grpc.ServerStream, info *grpc.StreamServerInfo, handler grpc.StreamHandler) error

func ToGRPC

func ToGRPC(ctx context.Context, err error) error

func UnaryClientInterceptor

func UnaryClientInterceptor(ctx context.Context, method string, req, reply any, cc *grpc.ClientConn, invoker grpc.UnaryInvoker, opts ...grpc.CallOption) error

func UnaryServerInterceptor

func UnaryServerInterceptor(ctx context.Context, req any, info *grpc.UnaryServerInfo, handler grpc.UnaryHandler) (resp any, err error)

func WrapCode

func WrapCode(err error, code codes.Code) error

Types

type TypedError

type TypedError interface {
	ToProto() TypedErrorProto
}

type TypedErrorProto

type TypedErrorProto interface {
	proto.Message
	WrapError(error) error
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL