| import traceback |
| from http import HTTPStatus |
|
|
| from kui.asgi import HTTPException, JSONResponse |
|
|
|
|
| class ExceptionHandler: |
|
|
| async def http_exception_handler(self, exc: HTTPException): |
| return JSONResponse( |
| dict( |
| statusCode=exc.status_code, |
| message=exc.content, |
| error=HTTPStatus(exc.status_code).phrase, |
| ), |
| exc.status_code, |
| exc.headers, |
| ) |
|
|
| async def other_exception_handler(self, exc: Exception): |
| traceback.print_exc() |
|
|
| status = HTTPStatus.INTERNAL_SERVER_ERROR |
| return JSONResponse( |
| dict(statusCode=status, message=str(exc), error=status.phrase), |
| status, |
| ) |
|
|