做了一些有限修正
This commit is contained in:
@@ -54,5 +54,26 @@ def custom_exception_handler(exc, context):
|
||||
|
||||
return Response(standard_response, status=response.status_code)
|
||||
|
||||
# 对于非DRF异常,这里可以根据需要处理
|
||||
# 对于非DRF异常(response为None),生产环境返回通用错误信息
|
||||
if response is None:
|
||||
from django.conf import settings
|
||||
request = context.get('request')
|
||||
user_info = '未知'
|
||||
if request:
|
||||
user_info = f"用户: {request.user.id if request.user.is_authenticated else '未登录'}"
|
||||
logger.error(
|
||||
f"未处理异常 - 路径: {request.path if request else '未知'}, "
|
||||
f"方法: {request.method if request else '未知'}, {user_info}, "
|
||||
f"错误类型: {type(exc).__name__}, 错误: {str(exc)}"
|
||||
)
|
||||
if not settings.DEBUG:
|
||||
return Response(
|
||||
{'code': 500, 'message': '服务器内部错误,请稍后重试'},
|
||||
status=status.HTTP_500_INTERNAL_SERVER_ERROR
|
||||
)
|
||||
return Response(
|
||||
{'code': 500, 'message': str(exc)},
|
||||
status=status.HTTP_500_INTERNAL_SERVER_ERROR
|
||||
)
|
||||
|
||||
return response
|
||||
Reference in New Issue
Block a user