class Error
Base exception class for gRPC errors
Definitions
def initialize(status_code, message = nil, details: nil, metadata: {})
Signature
-
parameter
status_codeInteger gRPC status code
-
parameter
messageString | Nil Error message
-
parameter
detailsObject | Nil Error details
-
parameter
metadataHash Custom metadata
Implementation
def initialize(status_code, message = nil, details: nil, metadata: {})
@status_code = status_code
@details = details
@metadata = metadata
super(message || Status::DESCRIPTIONS[status_code])
end
def self.error_class_for_status(status_code)
Map status code to error class
Signature
-
parameter
status_codeInteger gRPC status code
-
returns
Class Error class for the status code
Implementation
def self.error_class_for_status(status_code)
case status_code
when Status::CANCELLED then Cancelled
when Status::INVALID_ARGUMENT then InvalidArgument
when Status::DEADLINE_EXCEEDED then DeadlineExceeded
when Status::NOT_FOUND then NotFound
when Status::INTERNAL then Internal
when Status::UNAVAILABLE then Unavailable
when Status::UNAUTHENTICATED then Unauthenticated
else
Error
end
end
def self.for(status_code, message = nil, metadata: {})
Create an appropriate error instance for the given status code
Signature
-
parameter
status_codeInteger gRPC status code
-
parameter
messageString | Nil Error message
-
parameter
metadataHash Custom metadata
-
returns
Error An instance of the appropriate error class
Implementation
def self.for(status_code, message = nil, metadata: {})
error_class = error_class_for_status(status_code)
if error_class == Error
error_class.new(status_code, message, metadata: metadata)
else
error_class.new(message, metadata: metadata)
end
end