diff options
| author | crupest <crupest@outlook.com> | 2024-11-11 01:12:29 +0800 | 
|---|---|---|
| committer | Yuqian Yang <crupest@crupest.life> | 2024-12-18 18:31:27 +0800 | 
| commit | 7b4d49e4bbdff6ddf1f8f7e937130e700024d5e9 (patch) | |
| tree | b45e6cb4312b050ac4e1ccf51106d44af9201b40 /tools/cru-py/cru/_error.py | |
| parent | ca88aee42b741110d42683db826caf61b642abea (diff) | |
| download | crupest-7b4d49e4bbdff6ddf1f8f7e937130e700024d5e9.tar.gz crupest-7b4d49e4bbdff6ddf1f8f7e937130e700024d5e9.tar.bz2 crupest-7b4d49e4bbdff6ddf1f8f7e937130e700024d5e9.zip | |
HALF WORK: 2024.12.17
Diffstat (limited to 'tools/cru-py/cru/_error.py')
| -rw-r--r-- | tools/cru-py/cru/_error.py | 27 | 
1 files changed, 27 insertions, 0 deletions
| diff --git a/tools/cru-py/cru/_error.py b/tools/cru-py/cru/_error.py new file mode 100644 index 0000000..0d2bf79 --- /dev/null +++ b/tools/cru-py/cru/_error.py @@ -0,0 +1,27 @@ +from typing import NoReturn + + +class CruException(Exception): +    """Base exception class of all exceptions in cru.""" + + +class CruUnreachableError(CruException): +    """Raised when a code path is unreachable.""" + + +def cru_unreachable() -> NoReturn: +    raise CruUnreachableError() + + +class CruInternalError(CruException): +    """Raised when an internal logic error occurs.""" + + +class CruUserFriendlyException(CruException): +    def __init__(self, message: str, user_message: str, *args, **kwargs) -> None: +        super().__init__(message, *args, **kwargs) +        self._user_message = user_message + +    @property +    def user_message(self) -> str: +        return self._user_message | 
