API Exception
The APIException
is the root exception that you should inherit for errors that are thrown within action functions. This syntax allows your frontend to pick up on the error parameters. APIExceptions are just Pydantic BaseModels with a few helpful defaults, and a metaclass that allows them to work natively with HTTPExceptions.
mountaineer.exceptions.APIException
APIException(**kwargs)
Bases: HTTPException
Base class for user defined APIExceptions that can be thrown in server actions and should provide some metadata back to the client caller.
class PostNotFound(APIException):
status_code: int = 404
detail: str = "The post was not found"
post_id: int
is_deleted: bool
class MyController(ControllerBase):
@passthrough
def get_post(self, post_id: int) -> Post:
post = self.post_service.get_post(post_id)
if not post:
raise PostNotFound(post_id=post_id, is_deleted=True)
return post
status_code
class-attribute
instance-attribute
status_code = 500
detail
class-attribute
instance-attribute
detail = 'A server error occurred'