https://er.yuvayana.org/user-defined-exceptions-in-python/
User defined exceptions in Python