Situation
Currently, our code catches an invalid version and raise an exception. This is good. However, the exceptions are usually builtin exceptions like TypeError, ValueError, or AttributeError.
This could make it likely, that an semver exceptions are "hidden". It cannot explicitly be checked that a TypeError is coming from semver and not from another, unrelated third party library.
Proposal
This part could be solved by introducing our own hierarchy of exceptions like so:
class InvalidVersionError(ValueError):
"""Raised by invalid parts in a semver version"""
The nice thing about this approach is, any old code would still work (as InvalidVersionError is derived from ValueError).
@python-semver/reviewers would that be an option?
Situation
Currently, our code catches an invalid version and raise an exception. This is good. However, the exceptions are usually builtin exceptions like
TypeError,ValueError, orAttributeError.This could make it likely, that an semver exceptions are "hidden". It cannot explicitly be checked that a
TypeErroris coming from semver and not from another, unrelated third party library.Proposal
This part could be solved by introducing our own hierarchy of exceptions like so:
The nice thing about this approach is, any old code would still work (as
InvalidVersionErroris derived fromValueError).@python-semver/reviewers would that be an option?