Module: GraphQL::Schema::CatchallMiddleware
- Defined in:
- lib/graphql/schema/catchall_middleware.rb
Overview
In early GraphQL versions, errors would be “automatically”
rescued and replaced with "Internal error". That behavior
was undesirable but this middleware is offered for people who
want to preserve it.
It has a couple of differences from the previous behavior:
- Other parts of the query will be run (previously,
execution would stop when the error was raised and the result
would have no "data"key at all)
- The entry in Query::Context#errors is a ExecutionError, not the originally-raised error.
- The entry in the "errors"key includes the location of the field which raised the errors.
Constant Summary collapse
- MESSAGE =
- "Internal error"
Class Method Summary collapse
- 
  
    
      .call(parent_type, parent_object, field_definition, field_args, query_context)  ⇒ Object 
    
    
  
  
  
  
  
  
  
  
  
    Rescue any error and replace it with a ExecutionError whose message is MESSAGE. 
Class Method Details
.call(parent_type, parent_object, field_definition, field_args, query_context) ⇒ Object
Rescue any error and replace it with a ExecutionError whose message is MESSAGE
| 28 29 30 31 32 | # File 'lib/graphql/schema/catchall_middleware.rb', line 28 def self.call(parent_type, parent_object, field_definition, field_args, query_context) yield rescue StandardError GraphQL::ExecutionError.new(MESSAGE) end |