errors

package
v1.12.7 Latest Latest
Warning

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

Go to latest
Published: Nov 1, 2024 License: Apache-2.0 Imports: 11 Imported by: 5

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func AbortedErrorf

func AbortedErrorf(format string, a ...any) error

AbortedErrorf creates a new error that indicates the operation was aborted, typically due to a concurrency issue like sequencer check failures, transaction aborts, etc.

See litmus test above for deciding between FailedPrecondition, Aborted, and Unavailable.

This error code will not be generated by the gRPC framework.

func AlreadyExistsErrorf

func AlreadyExistsErrorf(format string, a ...any) error

AlreadyExistsErrorf creates a new error that means an attempt to create an entity failed because one already exists.

This error code will not be generated by the gRPC framework.

func CanceledErrorf

func CanceledErrorf(format string, a ...any) error

CanceledErrorf creates a new error that indicates the operation was canceled (typically by the caller).

The gRPC framework will generate this error code when cancellation is requested.

func CodeOf

func CodeOf(err error) connect.Code

func DataLossErrorf

func DataLossErrorf(format string, a ...any) error

DataLossErrorf creates a new error that indicates unrecoverable data loss or corruption.

This error code will not be generated by the gRPC framework.

func DeadlineExceededErrorf

func DeadlineExceededErrorf(format string, a ...any) error

DeadlineExceededErrorf creates a new error that means operation expired before completion. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire.

The gRPC framework will generate this error code when the deadline is exceeded.

func FailedPreconditionErrorf

func FailedPreconditionErrorf(format string, a ...any) error

FailedPreconditionErrorf creates a new error that indicates operation was rejected because the system is not in a state required for the operation's execution. For example, directory to be deleted may be non-empty, an rmdir operation is applied to a non-directory, etc.

A litmus test that may help a service implementor in deciding between FailedPrecondition, Aborted, and Unavailable:

(a) Use Unavailable if the client can retry just the failing call.
(b) Use Aborted if the client should retry at a higher-level
    (e.g., restarting a read-modify-write sequence).
(c) Use FailedPrecondition if the client should not retry until
    the system state has been explicitly fixed. E.g., if an "rmdir"
    fails because the directory is non-empty, FailedPrecondition
    should be returned since the client should not retry unless
    they have first fixed up the directory by deleting files from it.
(d) Use FailedPrecondition if the client performs conditional
    REST Get/Update/Delete on a resource and the resource on the
    server does not match the condition. E.g., conflicting
    read-modify-write on the same resource.

This error code will not be generated by the gRPC framework.

func FromHTTP

func FromHTTP(status int, msg string) error

func FromK8sClient added in v1.10.5

func FromK8sClient(err error) error

func InternalErrorf

func InternalErrorf(format string, a ...any) error

InternalErrorf creates a new error that errors. Means some invariants expected by underlying system has been broken. If you see one of these errors, something is very broken.

This error code will be generated by the gRPC framework in several internal error conditions.

func InvalidArgumentErrorf

func InvalidArgumentErrorf(format string, a ...any) error

InvalidArgumentErrorf creates a new error that indicates client specified an invalid argument. Note that this differs from FailedPrecondition. It indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name).

This error code will not be generated by the gRPC framework.

func IsAborted

func IsAborted(err error) bool

IsAborted indicates the operation was aborted, typically due to a concurrency issue like sequencer check failures, transaction aborts, etc.

See litmus test above for deciding between FailedPrecondition, Aborted, and Unavailable.

This error code will not be generated by the gRPC framework.

func IsAlreadyExists

func IsAlreadyExists(err error) bool

IsAlreadyExists means an attempt to create an entity failed because one already exists.

This error code will not be generated by the gRPC framework.

func IsCanceled

func IsCanceled(err error) bool

IsCanceled indicates the operation was canceled (typically by the caller).

The gRPC framework will generate this error code when cancellation is requested.

func IsDataLoss

func IsDataLoss(err error) bool

IsDataLoss indicates unrecoverable data loss or corruption.

This error code will not be generated by the gRPC framework.

func IsDeadlineExceeded

func IsDeadlineExceeded(err error) bool

IsDeadlineExceeded means operation expired before completion. For operations that change the state of the system, this error may be returned even if the operation has completed successfully. For example, a successful response from a server could have been delayed long enough for the deadline to expire.

The gRPC framework will generate this error code when the deadline is exceeded.

func IsFailedPrecondition

func IsFailedPrecondition(err error) bool

IsFailedPrecondition indicates operation was rejected because the system is not in a state required for the operation's execution. For example, directory to be deleted may be non-empty, an rmdir operation is applied to a non-directory, etc.

A litmus test that may help a service implementor in deciding between FailedPrecondition, Aborted, and Unavailable:

(a) Use Unavailable if the client can retry just the failing call.
(b) Use Aborted if the client should retry at a higher-level
    (e.g., restarting a read-modify-write sequence).
(c) Use FailedPrecondition if the client should not retry until
    the system state has been explicitly fixed. E.g., if an "rmdir"
    fails because the directory is non-empty, FailedPrecondition
    should be returned since the client should not retry unless
    they have first fixed up the directory by deleting files from it.
(d) Use FailedPrecondition if the client performs conditional
    REST Get/Update/Delete on a resource and the resource on the
    server does not match the condition. E.g., conflicting
    read-modify-write on the same resource.

This error code will not be generated by the gRPC framework.

func IsInternal

func IsInternal(err error) bool

IsInternal errors. Means some invariants expected by underlying system has been broken. If you see one of these errors, something is very broken.

This error code will be generated by the gRPC framework in several internal error conditions.

func IsInvalidArgument

func IsInvalidArgument(err error) bool

IsInvalidArgument indicates client specified an invalid argument. Note that this differs from FailedPrecondition. It indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name).

This error code will not be generated by the gRPC framework.

func IsNotFound

func IsNotFound(err error) bool

IsNotFound means some requested entity (e.g., file or directory) was not found.

This error code will not be generated by the gRPC framework.

func IsOutOfRange

func IsOutOfRange(err error) bool

IsOutOfRange means operation was attempted past the valid range. E.g., seeking or reading past end of file.

Unlike InvalidArgument, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate InvalidArgument if asked to read at an offset that is not in the range [0,2^32-1], but it will generate OutOfRange if asked to read from an offset past the current file size.

There is a fair bit of overlap between FailedPrecondition and OutOfRange. We recommend using OutOfRange (the more specific error) when it applies so that callers who are iterating through a space can easily look for an OutOfRange error to detect when they are done.

This error code will not be generated by the gRPC framework.

func IsPermissionDenied

func IsPermissionDenied(err error) bool

IsPermissionDenied indicates the caller does not have permission to execute the specified operation. It must not be used for rejections caused by exhausting some resource (use ResourceExhausted instead for those errors). It must not be used if the caller cannot be identified (use Unauthenticated instead for those errors).

This error code will not be generated by the gRPC core framework, but expect authentication middleware to use it.

func IsResourceExhausted

func IsResourceExhausted(err error) bool

IsResourceExhausted indicates some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.

This error code will be generated by the gRPC framework in out-of-memory and server overload situations, or when a message is larger than the configured maximum size.

func IsUnauthenticated

func IsUnauthenticated(err error) bool

IsUnauthenticated indicates the request does not have valid authentication credentials for the operation.

The gRPC framework will generate this error code when the authentication metadata is invalid or a Credentials callback fails, but also expect authentication middleware to generate it.

func IsUnavailable

func IsUnavailable(err error) bool

IsUnavailable indicates the service is currently unavailable. This is a most likely a transient condition and may be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations.

See litmus test above for deciding between FailedPrecondition, Aborted, and Unavailable.

This error code will be generated by the gRPC framework during abrupt shutdown of a server process or network connection.

func IsUnimplemented

func IsUnimplemented(err error) bool

IsUnimplemented indicates operation is not implemented or not supported/enabled in this service.

This error code will be generated by the gRPC framework. Most commonly, you will see this error code when a method implementation is missing on the server. It can also be generated for unknown compression algorithms or a disagreement as to whether an RPC should be streaming.

func IsUnknown

func IsUnknown(err error) bool

IsUnknown error. An example of where this error may be returned is if a Status value received from another address space belongs to an error-space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error.

The gRPC framework will generate this error code in the above two mentioned cases.

func Join added in v1.6.4

func Join(errs ...error) error

func MessageOf

func MessageOf(err error) string

func New added in v1.2.0

func New(s string) error

func NewError added in v1.9.0

func NewError(c connect.Code, underlying error) error

func NotFoundErrorf

func NotFoundErrorf(format string, a ...any) error

NotFoundErrorf creates a new error that means some requested entity (e.g., file or directory) was not found.

This error code will not be generated by the gRPC framework.

func OutOfRangeErrorf

func OutOfRangeErrorf(format string, a ...any) error

OutOfRangeErrorf creates a new error that means operation was attempted past the valid range. E.g., seeking or reading past end of file.

Unlike InvalidArgument, this error indicates a problem that may be fixed if the system state changes. For example, a 32-bit file system will generate InvalidArgument if asked to read at an offset that is not in the range [0,2^32-1], but it will generate OutOfRange if asked to read from an offset past the current file size.

There is a fair bit of overlap between FailedPrecondition and OutOfRange. We recommend using OutOfRange (the more specific error) when it applies so that callers who are iterating through a space can easily look for an OutOfRange error to detect when they are done.

This error code will not be generated by the gRPC framework.

func PermissionDeniedErrorf

func PermissionDeniedErrorf(format string, a ...any) error

PermissionDeniedErrorf creates a new error that indicates the caller does not have permission to execute the specified operation. It must not be used for rejections caused by exhausting some resource (use ResourceExhausted instead for those errors). It must not be used if the caller cannot be identified (use Unauthenticated instead for those errors).

This error code will not be generated by the gRPC core framework, but expect authentication middleware to use it.

func ResourceExhaustedErrorf

func ResourceExhaustedErrorf(format string, a ...any) error

ResourceExhaustedErrorf creates a new error that indicates some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.

This error code will be generated by the gRPC framework in out-of-memory and server overload situations, or when a message is larger than the configured maximum size.

func ToHTTP

func ToHTTP(err error) int

func UnauthenticatedErrorf

func UnauthenticatedErrorf(format string, a ...any) error

UnauthenticatedErrorf creates a new error that indicates the request does not have valid authentication credentials for the operation.

The gRPC framework will generate this error code when the authentication metadata is invalid or a Credentials callback fails, but also expect authentication middleware to generate it.

func UnavailableErrorf

func UnavailableErrorf(format string, a ...any) error

UnavailableErrorf creates a new error that indicates the service is currently unavailable. This is a most likely a transient condition and may be corrected by retrying with a backoff. Note that it is not always safe to retry non-idempotent operations.

See litmus test above for deciding between FailedPrecondition, Aborted, and Unavailable.

This error code will be generated by the gRPC framework during abrupt shutdown of a server process or network connection.

func UnimplementedErrorf

func UnimplementedErrorf(format string, a ...any) error

UnimplementedErrorf creates a new error that indicates operation is not implemented or not supported/enabled in this service.

This error code will be generated by the gRPC framework. Most commonly, you will see this error code when a method implementation is missing on the server. It can also be generated for unknown compression algorithms or a disagreement as to whether an RPC should be streaming.

func UnknownErrorf

func UnknownErrorf(format string, a ...any) error

UnknownErrorf creates a new error that error. An example of where this error may be returned is if a Status value received from another address space belongs to an error-space that is not known in this address space. Also errors raised by APIs that do not return enough error information may be converted to this error.

The gRPC framework will generate this error code in the above two mentioned cases.

Types

type Error added in v1.9.0

type Error struct {
	// contains filtered or unexported fields
}

func (Error) Error added in v1.9.0

func (e Error) Error() string

func (Error) GRPCStatus added in v1.9.0

func (e Error) GRPCStatus() *status.Status

func (Error) Unwrap added in v1.9.0

func (e Error) Unwrap() error

Jump to

Keyboard shortcuts

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