Error Handling¶
spangle provides minimum error response by default. You can make custom error handler for any type of Exception .
Define handler¶
An error handler looks like normal view class, but has on_error method.
@api.handle(ValueError)
class Handle:
# note: response body like `Response.text` are initialized.
async def on_error(self, req, resp, e: ValueError):
resp.status_code = 400
resp.text = "Invalid request body."
# to catch exceptions on server, set `reraise=True` .
resp.reraise = True
You can also use ErrorHandler instance.
from spangle import Api, ErrorHandler
eh = ErrorHandler()
@eh.handle("TypeError")
class Handle:
...
api = Api()
api.add_error_handler(eh)