1. 程式人生 > >【SpringBoot專題】統一異常處理和統一資料返回

【SpringBoot專題】統一異常處理和統一資料返回

前言

在實際開發中,我們希望對介面結果的返回,進行一次統一的封裝,即便介面發生異常。比如,我們可以這樣設計介面的返回:

統一資料返回

我們希望有一種統一的方式來處理異常,並且有一種統一的方式來對介面結果進行返回,並且儘可能少編寫程式碼,儘可能和業務邏輯的處理分離開來。

實踐

第一步:定義通用的資料返回物件

GlobalResponse

這裡我們定義通用的資料返回物件,並且提供一個正常資料返回/一個異常資料返回的快速設定方法。

第二步:定義統一處理handler

GlobalResponseHandler

@[email protected]

配合使用

首先,我們通過@ControllerAdvice來定義一個controller增強處理器,可以通過配合使用@ExceptionHandler來進行異常的統一處理。

其次,通過實現ResponseBodyAdvice,對於資料的返回,進行進一步的處理,使得介面的返回值都是統一的物件。

業務異常

執行結果

介面正常返回

正常返回的資料被統一包裝

介面異常

異常返回

好了,到這裡,咱們對springboot中的異常處理以及統一介面資料返回就有了一個認識~

週末愉快~


歡迎工作一到十年的Java工程師朋友們加入Java進階高階架構:828545509

本群提供免費的學習指導 架構資料 以及免費的解答

不懂得問題都可以在本群提出來 之後還會有職業生涯規劃以及面試指導

相關推薦

SpringBoot專題統一異常處理統一資料返回

前言 在實際開發中,我們希望對介面結果的返回,進行一次統一的封裝,即便介面發生異常。比如,我們可以這樣設計介面的返回: 統一資料返回 我們希望有一種統一的方式來處理異常,並且有一種統一的方式來對介面結果進行返回,並且儘可能少編寫程式碼,儘可能和業務邏輯

Struts2(11)異常處理標籤

private List myList1; private List myList2; private List myList3; public List getMyList1() { return myList1; } public List getMyList2() { retur

SpringBoot統一異常處理統一回復介面

SpringBoot及Mybait壞境搭建詳見上一篇 一.定義回覆介面格式類 package com.example.demo.bean; /* * * Created by Ay on 2018/9/20 */ //返回的格式類 public class ResultBean&l

問題記錄控制檯解析previewresponse資料不一致→解決JS處理後臺返回的Long型資料精度丟失

問題描述: 後端返回資料preview和response不一致 (翻譯成專業術語就是:JS處理後臺返回的Long型資料精度丟失) 問題分析: JS在處理返回資料型別是Long的時候,精度會丟失一部分!!! 問題原因: JS內建有32位整數,而number型

CheckedExceptionunCheckedException理解及Spring 統一異常處理封裝

一、CheckedException和UnCheckedException 1.CheckedException已檢查異常 CheckedException繼承自Exception,程式內部無法控制,必須做處理,要麼使用try-atch塊捕獲,要麼throws拋給上一層。

SpringBoot系列(十)優雅的處理統一異常處理統一結果返回

# SpringBoot系列(十)統一異常處理與統一結果返回 # 往期推薦 [SpringBoot系列(一)idea新建Springboot專案](https://www.cnblogs.com/swzx-1213/p/12345330.html) [SpringBoot系列(二)入門知識](https:

spring-boot實戰07:Spring Boot中Web應用的統一異常處理

http integer private fin ima lex clas 友好 ref 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個全

Web API統一異常處理 轉載

perror 錯誤 gif mode handlers ttr 服務 class 篩選  前面講了webapi的安全驗證和參數安全,不清楚的朋友,可以看看前面的文章,《Web API系列(二)接口安全和參數校驗》,本文主要介紹Web API異常結果的處理。作為內部或者是對外

SpringBoot表單驗證、AOP處理請求統一異常處理

表單驗證 假如表單引數很多,用@RequestParam方式就不合適了,引數中可直接使用@Valid Girl gir /** * 新增一個女生 * @return */ @PostMapping(value = "/a

C++ C++異常捕捉處理

在閱讀別人開發的專案中,也許你會經常看到了多處使用異常的程式碼,也許你也很少遇見使用異常處理的程式碼。那在什麼時候該使用異常,又在什麼時候不該使用異常呢?在學習完異常基本概念和語法之後,後面會有講解。 ### (1)異常丟擲和捕捉語句 ```cpp //1.丟擲異常 throw  異常物件 //2.異常捕捉

springboot 統一異常處理

sping nbsp 用法 異常處理 exc png 不能 run ges 在sping框架裏定義我們想要的異常類,不能繼承Exception,要繼承RuntimeException,原因在於spring框架只對拋出的異常是RuntimeException,才會進行事務回滾

基礎C#異常處理的總結

ember -s 有效 理解 dac 十進制 reference bsp msil 一、異常處理的理解? 異常處理是指程序在運行過程中,發生錯誤會導致程序退出,這種錯誤,就叫做異常。 因此處理這種錯誤,就稱為異常處理。 二、異常處理如何操作? C# 異常處

代碼學習PYTHON 異常處理

上下文 當前 異常處理 通過 工作 相同 try語句 標記 異常信息 一、什麽是異常   在程序執行過程中可能會影響程序的正常執行,一般情況下,在python無法正常處理程序時就會發生一個異常   當python腳本發生異常時我們需要捕獲處理他,否則程序會終止執行 二、異常

企業分布式微服務雲SpringCloud SpringBoot mybatis (五)Spring Boot中Web應用的統一異常處理

src one exception learn 微服務 public .net 可能 訪問 我們在做Web應用的時候,請求處理過程中發生錯誤是非常常見的情況。Spring Boot提供了一個默認的映射:/error,當處理中拋出異常之後,會轉到該請求中處理,並且該請求有一個

springboot統一異常處理

ddl ice 運行 ppi stc 之間 事務回滾 提示 throws 對於與數據庫相關的 Spring MVC 項目,我們通常會把 事務 配置在 Service層,當數據庫操作失敗時讓 Service 層拋出運行時異常,Spring 事物管理器就會進行回滾。 如此一來,

WIPSwift4 異常處理

class bsp 捕捉 ext 利用 str ble nbsp o-c 創建: 2018/03/24 【任務表】TODO 異常處理語法 異常的發生 異常的傳播與捕捉 呼出會拋出異常的函數的方法 do-catch

spring 或 springboot統一異常處理

pbo catch ada pass ann href TP let copy spring 或 springboot統一異常處理https://blog.csdn.net/xzmeasy/article/details/76150370 一,本文介紹spring MV

SpringBoot從入門到放棄》之第(五)篇——統一異常處理

在平時的開發測試過程中,經常能看到下面的錯誤頁面,該頁面是SpringBoot提供的預設error對映頁面,該頁面如果直接傳遞給使用者,那將非常的不友好,因此,我們通常需要去實現自定義的異常提示。 建立全域性異常處理類:通過使用@ControllerAdvice定義統一的異常處理類,而不是在

面向物件day08異常處理(六)

本節內容 1、概述 2、異常梳理 3、異常梳理流程圖 4、異常大全 5、自定義異常 一、概述   異常處理是當程式出錯了,但是我們又不想讓使用者看到這個錯誤,而且我在寫程式的時候已經預料到了它可以出現這樣的錯誤,出現這樣的錯誤代表著什麼,我們可以提前處理這些個錯誤 二、異常處理 2.1 處理

java關於異常處理的思考

所謂異常,是程式執行期間發生的各種意外或錯誤。比如使用者輸入出錯、所需檔案找不到、執行時磁碟空間不夠、記憶體不夠、算術運算錯(數的溢位、被零除等)、陣列下標越界等。所以異常處理機制十分有用。但為了防止程式碼過於冗長,執行時間過長等,並不是要在每一句話上都加上try catch語句。 最普遍的在於對使用者輸入