隐藏页面特效

自定义异常处理

通常drf自带的异常处理类exception_handler可能会处理不了一些没有的异常,此时需要我们自定义
utils/exceptions.py 单独创建一个exceptions文件

from rest_framework.views import exception_handler from django.db import DatabaseError from rest_framework.response import Response from rest_framework import status import logging logger = logging.getLogger('django') def custom_exception_handler(exc, context): """ 自定义异常处理 :param exc: 本次异常发生时的异常对象 :param context: 本次异常发生时的上下文 :return: """ # 调用drf框架原生的异常处理方法 response = exception_handler(exc, context) if response is None: # 发生异常的视图 view = context['view'] """为None可能有2种情况,没有发生异常,或者本次异常没有被drf进行处理""" if isinstance(exc, DatabaseError): # 数据库操作异常 logger.error('数据库发生异常, view=%s, exc=%s' % (view, exc)) response = Response({'detail': '服务器内部错误'}, status=status.HTTP_507_INSUFFICIENT_STORAGE) if isinstance(exc, Exception): # 未知异常 logger.error('发生未知异常, views=%s, exc=%s' % (view, exc)) response = Response({'detail': '服务器发生未知错误'}, status=status.HTTP_500_INTERNAL_SERVER_ERROR) return response

settings.py文件中需要指定使用我们自定义的异常类

REST_FRAMEWORK = { # 异常处理 'EXCEPTION_HANDLER': 'renranapi.utils.exception.custom_exception_handler', }

__EOF__

本文作者404 Not Found
本文链接https://www.cnblogs.com/weiweivip666/p/13767893.html
关于博主:可能又在睡觉
版权声明:转载请注明出处
声援博主:如果看到我睡觉请喊我去学习
posted @   我在路上回头看  阅读(155)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· winform 绘制太阳,地球,月球 运作规律
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
点击右上角即可分享
微信分享提示