Use an unchecked exception for unsupported MAC algorithms#29
Merged
Conversation
755a1a8 to
3b4dc0d
Compare
3b4dc0d to
f1e62ba
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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 introduces a
NoSuchAlgorithmRuntimeExceptionto take the place ofNoSuchAlgorithmException. The rationale is that, in virtually all cases, aNoSuchAlgorithmExceptionis practically impossible because all JVMs are required to support SHA-1 and SHA-256. The one exception is SHA-512, which JVMs are not required to support (but most do).Re-throwing
NoSuchAlgorithmExceptionas aNoSuchAlgorithmRuntimeExceptionmeans that callers don't need to catch an exception that can never happen in most cases; in the one case where it can happen, we'll rely on the docs to warn callers that they should be on the lookout for aNoSuchAlgorithmRuntimeException.My hope is that this is a worthwhile tradeoff in favor of API ergonomics, but I welcome feedback!