Deprecate ion limit and abundance exceptions #1713
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.
My main ideas here are
It is therefore imperative to keep their footprint low. The
AbundanceLimitExceededException
andIonLimitExceededException
therefore seem like a bad idea, becauseWhat happened were redundant checks if
float abundance
is insideFLOAT.MIN_VALUE
andFLOAT.MAX_VALUE
sometimes even with an additional if-clause inside the try catch for the exception.Therefore, I replaced it with a
boolean
return insetAbundance
andsetIon
so exceptions aren't used for control flow because that is an anti-pattern, but we retain the logic in the filters where the exceptions weren't just logged and ignored.I also found this useful during converter development to check for invalid and therefore highly likely wrong parsings, but this can easily be recreated in the parser and should also possibly be removed afterward.