class Google::Cloud::Error
Base google-cloud exception class.
#
def self.from_error error
- Private: - Create a new error object from a client error
def self.from_error error klass = if error.respond_to? :code grpc_error_class_for error.code elsif error.respond_to? :status_code gapi_error_class_for error.status_code else self end klass.new error.message end
def self.gapi_error_class_for http_status_code
- Private: - Identify the subclass for a Google API Client error
def self.gapi_error_class_for http_status_code # The http status codes mapped to their error classes. { 400 => InvalidArgumentError, # FailedPreconditionError/OutOfRangeError 401 => UnauthenticatedError, 403 => PermissionDeniedError, 404 => NotFoundError, 409 => AlreadyExistsError, # AbortedError 412 => FailedPreconditionError, 429 => ResourceExhaustedError, 499 => CanceledError, 500 => InternalError, # UnknownError/DataLossError 501 => UnimplementedError, 503 => UnavailableError, 504 => DeadlineExceededError }[http_status_code] || self end
def self.grpc_error_class_for grpc_error_code
- Private: - Identify the subclass for a gRPC error
def self.grpc_error_class_for grpc_error_code # The gRPC status code 0 is for a successful response. # So there is no error subclass for a 0 status code, use current class. [ self, CanceledError, UnknownError, InvalidArgumentError, DeadlineExceededError, NotFoundError, AlreadyExistsError, PermissionDeniedError, ResourceExhaustedError, FailedPreconditionError, AbortedError, OutOfRangeError, UnimplementedError, InternalError, UnavailableError, DataLossError, UnauthenticatedError ][grpc_error_code] || self end
def body
-
(Object, nil)
-
def body return nil unless cause.respond_to? :body cause.body end
def code
-
(Object, nil)
-
def code return nil unless cause.respond_to? :code cause.code end
def details
-
(Object, nil)
-
def details return nil unless cause.respond_to? :details cause.details end
def domain
-
(Object, nil)
-
def domain return nil unless error_info.respond_to? :domain error_info.domain end
def error_info
-
(::Google::Rpc::ErrorInfo, nil)
-
def error_info @error_info ||= begin check_property = lambda do |prop| if prop.is_a? Array error_infos = prop.find_all { |status| status.is_a? ::Google::Rpc::ErrorInfo } if error_infos.length == 1 error_infos[0] end end end check_property.call(status_details) || check_property.call(details) end end
def error_metadata
-
(Hash, nil)
-
def error_metadata return nil unless error_info.respond_to? :metadata error_info.metadata.to_h end
def header
-
(Object, nil)
-
def header return nil unless cause.respond_to? :header cause.header end
def initialize msg = nil
-
msg
(String, nil
) -- an error message
def initialize msg = nil super end
def metadata
-
(Object, nil)
-
def metadata return nil unless cause.respond_to? :metadata cause.metadata end
def reason
-
(Object, nil)
-
def reason return nil unless error_info.respond_to? :reason error_info.reason end
def status_code
-
(Object, nil)
-
def status_code return nil unless cause.respond_to? :status_code cause.status_code end
def status_details
-
(Object, nil)
-
def status_details return nil unless cause.respond_to? :status_details cause.status_details end