当前位置: 首页 > news >正文

【Django-ninja】在django ninja中处理异常

1. 直接抛内置异常

Django ninja内置了一些常用异常类。

from ninja.errors import HttpError@api.get("/some/resource")
def some_operation(request):if True:raise HttpError(503, "Service Unavailable. Please retry later.")

2.  覆写异常类

可以覆写内置异常类的handler,改变返回结果的内容。

from ninja.errors import ValidationError
...@api.exception_handler(ValidationError)
def validation_errors(request, exc):return HttpResponse("Invalid input", status=422)

3. 自定义异常类

以创建一个500服务不可用异常类为例。

要实现这一点,你需要:

  1. 自定义一个ServiceUnavailableError
  2. 使用 api.exception_handler 为ServiceUnavailableError异常添加一个处理函数
api = NinjaAPI()class ServiceUnavailableError(Exception):pass# initializing handler@api.exception_handler(ServiceUnavailableError)
def service_unavailable(request, exc):return api.create_response(request,{"message": "Please retry later"},status=503,)# some logic that throws exception@api.get("/service")
def some_operation(request):if random.choice([True, False]):raise ServiceUnavailableError()return {"message": "Hello"}

http://www.lryc.cn/news/298469.html

相关文章:

  • 【并发编程】原子累加器
  • Java 基于微信小程序的电子商城购物系统
  • Git Push -f 命令详解
  • 【LeetCode每日一题】前缀和的例题1248. 统计「优美子数组」974. 和可被 K 整除的子数组
  • 备战蓝桥杯---数学基础3
  • [算法学习] 逆元与欧拉降幂
  • 【Chrono Engine学习总结】4-vehicle-4.1-vehicle的基本概念
  • 腾讯云4核8G服务器多少钱?2024精准报价
  • 汽车出租管理系统
  • 使用SM4国密加密算法对Spring Boot项目数据库连接信息以及yaml文件配置属性进行加密配置(读取时自动解密)
  • 【LeetCode每日一题】二维前缀和基本概念与案例
  • 计算机网络——网络安全
  • SQl 注入 - 利用报错函数updatexml及extracevalue
  • ChatGPT高效提问—prompt实践(生成VBA)
  • Ps:直接从图层生成文件(图像资源)
  • springboot-接入ai机器人 汇总
  • 蓝桥杯嵌入式第9届真题(完成) STM32G431
  • 电商小程序03登录页面开发
  • 聊聊PowerJob的CleanService
  • Qt QML学习(一):Qt Quick 与 QML 简介
  • Kylin系统下Qt的各种中文问题解决思路
  • C 练习实例69-约瑟夫环
  • 【Qt Design】界面介绍
  • Makefile编译原理 make 中的路径搜索_1
  • 蓝桥杯每日一题------背包问题(一)
  • 面试 JavaScript 框架八股文十问十答第八期
  • 【机器学习】单变量线性回归
  • 《计算思维导论》笔记:10.4 关系模型-关系运算
  • QT+OSG/osgEarth编译之八十四:osgdb_osg+Qt编译(一套代码、一套框架,跨平台编译,版本:OSG-3.6.5插件库osgdb_osg)
  • 【Redis快速入门】初识Redis、Redis安装、图形化界面