mirror of
https://github.com/dtomlinson91/tembo.git
synced 2025-12-22 09:35:44 +00:00
956 B
956 B
Custom exceptions
Create an ./exceptions.py.
Define any custom exceptions. Can append Error to the exception name if needed, otherwise be descriptive.
E.g MismatchedTokenError, ScopedPageAlreadyExists.
(If it would raise a SystemExit(1) use an Error).
Can set custom attributes on the Exception:
class MismatchedTokenError(Exception):
def __init__(self, expected: int, given: int) -> None:
self.expected = expected
self.given = given
super().__init__()
Can refer to these when capturing the exception:
except exceptions.MismatchedTokenError as exec_info:
click.echo(exec_info.expected, exec_info.given)
# error handling
Alternatively you can pass arbitrary *args into the exceptions and capture them with args[0]:
raise exceptions.TemplateNotFoundError("some message")
except exceptions.TemplateFileNotFoundError as exec_info:
cli_message(exec_info.args[0])