@@ -498,13 +498,17 @@ def evaluate_selection_with_args(arguments, field_defn, next_path, ast_node, fie
498498 field_result = call_method_on_directives ( :resolve , object , directives ) do
499499 # Actually call the field resolver and capture the result
500500 app_result = begin
501- query . with_error_handling do
502- query . trace ( "execute_field" , { owner : owner_type , field : field_defn , path : next_path , ast_node : ast_node , query : query , object : object , arguments : kwarg_arguments } ) do
503- field_defn . resolve ( object , kwarg_arguments , context )
504- end
501+ query . trace ( "execute_field" , { owner : owner_type , field : field_defn , path : next_path , ast_node : ast_node , query : query , object : object , arguments : kwarg_arguments } ) do
502+ field_defn . resolve ( object , kwarg_arguments , context )
505503 end
506504 rescue GraphQL ::ExecutionError => err
507505 err
506+ rescue StandardError => err
507+ begin
508+ query . handle_or_reraise ( err )
509+ rescue GraphQL ::ExecutionError => ex_err
510+ ex_err
511+ end
508512 end
509513 after_lazy ( app_result , owner : owner_type , field : field_defn , path : next_path , ast_node : ast_node , owner_object : object , arguments : resolved_arguments , result_name : result_name , result : selection_result ) do |inner_result |
510514 continue_value = continue_value ( next_path , inner_result , owner_type , field_defn , return_type . non_null? , ast_node , result_name , selection_result )
@@ -871,21 +875,21 @@ def after_lazy(lazy_obj, owner:, field:, path:, owner_object:, arguments:, ast_n
871875 # Wrap the execution of _this_ method with tracing,
872876 # but don't wrap the continuation below
873877 inner_obj = begin
874- query . with_error_handling do
875- begin
876- if trace
877- query . trace ( "execute_field_lazy" , { owner : owner , field : field , path : path , query : query , object : owner_object , arguments : arguments , ast_node : ast_node } ) do
878- schema . sync_lazy ( lazy_obj )
879- end
880- else
881- schema . sync_lazy ( lazy_obj )
882- end
883- rescue GraphQL ::ExecutionError , GraphQL ::UnauthorizedError => err
884- err
878+ if trace
879+ query . trace ( "execute_field_lazy" , { owner : owner , field : field , path : path , query : query , object : owner_object , arguments : arguments , ast_node : ast_node } ) do
880+ schema . sync_lazy ( lazy_obj )
885881 end
882+ else
883+ schema . sync_lazy ( lazy_obj )
886884 end
887- rescue GraphQL ::ExecutionError => ex_err
885+ rescue GraphQL ::ExecutionError , GraphQL :: UnauthorizedError => ex_err
888886 ex_err
887+ rescue StandardError => err
888+ begin
889+ query . handle_or_reraise ( err )
890+ rescue GraphQL ::ExecutionError => ex_err
891+ ex_err
892+ end
889893 end
890894 yield ( inner_obj )
891895 end
0 commit comments