ensure exception class supports getErrorData #28398
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
A recent change is to allow showing detailed errors to end users from AJAX where appropriate by adding a
show_detailed_error
param to the exception:However, some AJAX API calls (notably
System.check
call Guzzle, and Guzzle exceptions don't have thegetErrorData()
method, so we never see the exception, we get a "method doesn't exist" message.This adds a check that the method exists before calling it.
Before
Guzzle failures in
System.check
when called via AJAX API crashes on exception.After
Guzzle failures in
System.check
when called via AJAX API are logged.Comments
This feels messy to me and maybe it's in the wrong spot. Is it possible to intercept a Guzzle exception with
catch
and then emit aCRM_Core_Exception
? But this is better in than out.