Package io.grpc

Enum Status.Code

  • All Implemented Interfaces:
    Serializable, Comparable<Status.Code>
    Enclosing class:
    Status

    public static enum Status.Code
    extends Enum<Status.Code>
    The set of canonical status codes. If new codes are added over time they must choose a numerical value that does not collide with any previously used value.
    • Enum Constant Detail

      • OK

        public static final Status.Code OK
        The operation completed successfully.
      • CANCELLED

        public static final Status.Code CANCELLED
        The operation was cancelled (typically by the caller).
      • UNKNOWN

        public static final Status.Code UNKNOWN
        Unknown 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.
      • INVALID_ARGUMENT

        public static final Status.Code INVALID_ARGUMENT
        Client specified an invalid argument. Note that this differs from FAILED_PRECONDITION. INVALID_ARGUMENT indicates arguments that are problematic regardless of the state of the system (e.g., a malformed file name).
      • DEADLINE_EXCEEDED

        public static final Status.Code DEADLINE_EXCEEDED
        Deadline expired before operation could complete. 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.
      • NOT_FOUND

        public static final Status.Code NOT_FOUND
        Some requested entity (e.g., file or directory) was not found.
      • ALREADY_EXISTS

        public static final Status.Code ALREADY_EXISTS
        Some entity that we attempted to create (e.g., file or directory) already exists.
      • PERMISSION_DENIED

        public static final Status.Code PERMISSION_DENIED
        The caller does not have permission to execute the specified operation. PERMISSION_DENIED must not be used for rejections caused by exhausting some resource (use RESOURCE_EXHAUSTED instead for those errors). PERMISSION_DENIED must not be used if the caller cannot be identified (use UNAUTHENTICATED instead for those errors).
      • RESOURCE_EXHAUSTED

        public static final Status.Code RESOURCE_EXHAUSTED
        Some resource has been exhausted, perhaps a per-user quota, or perhaps the entire file system is out of space.
      • FAILED_PRECONDITION

        public static final Status.Code FAILED_PRECONDITION
        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 FAILED_PRECONDITION, 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 FAILED_PRECONDITION 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, FAILED_PRECONDITION should be returned since the client should not retry unless they have first fixed up the directory by deleting files from it.

      • ABORTED

        public static final Status.Code ABORTED
        The operation was aborted, typically due to a concurrency issue like sequencer check failures, transaction aborts, etc.

        See litmus test above for deciding between FAILED_PRECONDITION, ABORTED, and UNAVAILABLE.

      • OUT_OF_RANGE

        public static final Status.Code OUT_OF_RANGE
        Operation was attempted past the valid range. E.g., seeking or reading past end of file.

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

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

      • UNIMPLEMENTED

        public static final Status.Code UNIMPLEMENTED
        Operation is not implemented or not supported/enabled in this service.
      • INTERNAL

        public static final Status.Code INTERNAL
        Internal errors. Means some invariants expected by underlying system has been broken. If you see one of these errors, something is very broken.
      • UNAVAILABLE

        public static final Status.Code UNAVAILABLE
        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 FAILED_PRECONDITION, ABORTED, and UNAVAILABLE.

      • DATA_LOSS

        public static final Status.Code DATA_LOSS
        Unrecoverable data loss or corruption.
      • UNAUTHENTICATED

        public static final Status.Code UNAUTHENTICATED
        The request does not have valid authentication credentials for the operation.
    • Method Detail

      • values

        public static Status.Code[] values()
        Returns an array containing the constants of this enum type, in the order they are declared. This method may be used to iterate over the constants as follows:
        for (Status.Code c : Status.Code.values())
            System.out.println(c);
        
        Returns:
        an array containing the constants of this enum type, in the order they are declared
      • valueOf

        public static Status.Code valueOf​(String name)
        Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
        Parameters:
        name - the name of the enum constant to be returned.
        Returns:
        the enum constant with the specified name
        Throws:
        IllegalArgumentException - if this enum type has no constant with the specified name
        NullPointerException - if the argument is null
      • value

        public int value()
        The numerical value of the code.
      • toStatus

        public Status toStatus()
        Returns a Status object corresponding to this status code.