Adopt typed throws to provide callers with more information about possible raised errors #1295
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.
Bug/issue #, if applicable:
Summary
This PR adopts SE-0413 where possible to provide callers with more information about possible raised errors.
ac7eeae updates code where the caller knew the only possible errors were raised but needed a redundant catch block to satisfy the compiler:
By providing the compiler with information about the errors that
doSomething()
can raise, the compiler can verify that the implementation doesn't unintentionally raise any other errors and the default catch block provides an error value of the right type:e8465bc updates a few additional methods that only raise a single type of error to provide this information to the caller, even if there's no callers to update.
ac7eeae updates some of our helper methods to use
throws(E)
instead ofrethrows
so that typed error information isn't lost when using these helpers.Dependencies
None.
Testing
Nothing in particular. This isn't a user-facing change.
Checklist
Make sure you check off the following items. If they cannot be completed, provide a reason.
AddedUpdated tests./bin/test
script and it succeeded[ ] Updated documentation if necessary