業務層刻意丟擲異常,全域性異常的捕獲它並按格式返回

2021-09-25 23:44:15 字數 994 閱讀 4914

對於業務層的程式的致命錯誤,我們一直的做法就是直接丟擲指定的異常,讓程式去終斷,這種做法是對的,因為如果乙個業務出現了致命的阻塞的問題,就沒有必要再向上一層一層的返回了,但這時有個問題,直接拋異常,意味著伺服器直接500了,前端如何去顯示,或者如果你是api的服務,如果為前端返回,如果是500,那直接就掛了,哈哈!

下面是在mvc環境下優化的全域性異常捕獲**(非api)

/// /// 全域性異常捕獲

如果業務層有問題,直接就throw了

if (id == 0)

throw new argumentexception("id不能為0");

if (id < 0)

throw new argumentexception("id不能是負數");

然後頁面後,故意讓它丟擲異常,我們看一下頁面響應的結果

事實上,對於伺服器來說,它是200,正常返回的,而對不業務模組來說,它的狀態是個500,呵呵,這點要清楚.

感謝各位閱讀!

Spring 全域性異常捕獲 自定義業務異常

響應前端成功效果 code 200 失敗效果 responseresult 統一向前端返回結果集 package com.cs.demo.exception author chan date 2020 01 18 public class responseresult public response...

python的異常丟擲

例子 編寫乙個不能處0的案例 s1 int input 請輸入乙個數字 try result 9 s1 except print 不能為0 結果 請輸入乙個數字 0 不能為0 process finished with exit code 0例子 try s1 int input 請輸入乙個數字 r...

python 丟擲 python丟擲異常的方法

python丟擲異常的方法 閱讀 89 異常是python物件,表示乙個錯誤。當python指令碼發生異常時我們需要捕獲處理它,否則程式會終止執行。常見異常 attributeerror 呼叫不存在的方法引發的異常 eoferror 遇到檔案末尾引發的異常 importerror 匯入模組出錯引發的...