Facets catch wrapped errors better #5671
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.
This PR aims to fix #5670.
Briefly, this PR replaces a
tryCatch()
with atry_fetch()
.try_fetch()
is better at catching errors that are inherited.When facet expressions include a function that throws wrapped errors,
tryCatch()
fails to 'see' the specialggplot2_missing_facet_var
error ggplot2 throws in case of missing columns here:ggplot2/R/facet-.R
Lines 470 to 483 in a4be39d
We can demonstrate this behaviour like so:
Created on 2024-01-31 with reprex v2.1.0
However,
try_fetch()
is 'aware' that the error is inherited. This restores the correct behaviour of missing columns:Created on 2024-01-31 with reprex v2.1.0