drf APIviews自定義異常處理

2022-07-17 11:36:06 字數 885 閱讀 1518

正常情況下apiview中的dispatch會幫我們處理部分異常,並返回response

其他沒有處理的異常就會報錯,當我們不希望伺服器返回錯誤頁面時,就需要我們自己自定義異常處理

from rest_framework.response import response

from rest_framework.views import exception_handler as drf_exception_handler # drf提供的處理異常方法

from rest_framework import status

#自定義的異常處理方法

def exception_handler(exc, context):

exception = exc

view = context.get('view')

args = context.get('args')

kwargs = context.get('kwargs')

request = context.get('request')

response = drf_exception_handler(exc, context)

# drf沒有提供處理的伺服器異常

if response is none:

# 重點:有些異常資訊需要記錄日誌檔案

# logging記錄異常資訊

return response('伺服器錯誤', status=status.http_500_internal_server_error)

response.data =

return response

# 在全域性配置檔案中更改處理異常的方法

rest_framework =

SpringBoot全域性異常處理 自定義異常

web框架中,有很多異常需要處理,比如業務異常,許可權不足等。一般都是使用try.catch進行異常捕捉處理,但是在實際專案中對業務模組進行異常捕捉,會造成 重複和繁雜。解決辦法 設立乙個全域性異常來對框架的所有異常進行統一處理。在可能發生異常的方法throw拋給自定義的異常控制器,然後由全域性異常...

ThinkPHP自定義成功介面 失敗介面 異常介面

在thinkphp的手冊中,附錄裡邊的配置參考,有乙個模板引擎設定。或者在手冊裡面的控制器,跳轉和重定向裡面。緊接著,就講到了如何自定義這些介面。將上訴的配置引數寫到到配置檔案裡,修改路徑到自己指定的路徑,就可以現在自己的寫的介面了。另外一種寫法 自定義提示介面 tmpl action error ...

自定義 如何自定義協議

何為自定義協議,其實是相對標準協議來說的,這裡主要針對的是應用層協議 常見的標準的應用層協議如http ftp smtp等,如果我們在網路通訊的過程中不去使用這些標準協議,那就需要自定義協議,比如我們常用的rpc框架 dubbo,thrift 分布式快取 redis,memcached 等都是自定義...