成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

異常處理實踐 - 拋異常+錯誤碼

開發 前端
創建一個業務異?;?BaseException extends RuntimeException ,為其添加兩個屬性:code 和 message ,并添加一些常用的構造方法。

哈嘍,大家好,我是指北君。

今天和大家分享一下異常處理和錯誤碼管理。

前言

在業務邏輯中,通常使用兩種方式處理異常:

  • 返回錯誤碼:優點是性能更好,但是不宜維護。
  • 拋出異常:可以使得代碼更清晰,可讀性更好,更符合面向對象。

選擇哪種需要根據場景而定,不管如何選擇,只要團隊達成共識,統一規范就可以。

下面介紹一下我使用的處理異常的方式。

自定義異常

創建一個業務異?;?BaseException extends RuntimeException ,為其添加兩個屬性:code 和 message ,并添加一些常用的構造方法。

其中, code 的作用是儲存錯誤碼,在返回前臺時將錯誤碼返回給用戶。

圖片

拋出異常:

圖片

錯誤碼管理

上面的自定義異??雌饋砗芎唵危遣粔騼炑藕秃唵?。怎么將錯誤碼和錯誤信息管理起來,是我們接下來要解決的問題。

我使用了 Enum ,先創建一個接口,其中包含兩個方法:

  • toCode():將枚舉值轉為 int 錯誤碼,默認已實現;
  • getMsg():獲取枚舉中的異常信息。

圖片

下面創建一個枚舉類,實現上面的接口:

圖片

觀察上面的錯誤碼枚舉類,我們發現,枚舉值為字母+錯誤碼,屬性 msg 為錯誤信息。

這樣將錯誤碼和異常信息統一管理起來之后,拋出異常的代碼就可優化為:

圖片

然而這樣依然不夠優雅,代碼量比之前還要長。要是能夠只傳枚舉值一個參數就好了,那么我們繼續優化。

創建一個異常類 BusinessException extends BaseException (創建一個子類,用來接收枚舉值),如下:

圖片

這樣我們就可以優雅的拋出 BusinessException 了:

圖片

如果想要保留原異常信息,還可以使用:

圖片

以上就是對異常處理的封裝,使用時,只需要在每個業務模塊中新建一個異常枚舉類,用來統一管理異常;需要時,在代碼中拋出 BusinessException 即可。

統一異常處理

最后,我們再使用 @ControllerAdvice 和 @ExceptionHandler 注解做一下統一異常處理,它的作用是:

  • 將業務異常打印到日志中
  • 將系統異常封裝為 BaseException 進行返回,同樣打印日志;
  • 這里也可以做其他操作,比如短信提醒等。

代碼如下:

圖片

圖片

責任編輯:武曉燕 來源: Java技術指北
相關推薦

2025-01-02 10:37:13

2025-02-10 09:49:00

2012-07-26 10:27:31

PHP

2017-09-05 14:59:34

2020-06-30 11:36:45

錯誤碼合理開發

2019-11-05 17:10:19

Java開發編程語言

2024-08-29 08:54:35

2023-02-02 08:56:25

線程池線程submit

2021-06-07 09:37:05

異常Bug排查

2017-11-20 11:53:38

CDN406錯誤故障

2018-02-06 09:05:25

Java異常處理代碼

2017-06-02 10:25:26

Java異常處理

2025-02-05 14:28:19

2013-08-22 17:10:09

.Net異常處理

2012-12-21 10:48:20

Java異常

2023-12-11 14:19:00

Java程序異常

2012-11-12 10:32:48

IBMdw

2018-07-11 19:41:47

MySQL定義異常異常處理

2013-04-01 09:39:06

JavaJava異常

2021-03-02 07:31:26

WebApiweb
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产精品久久久久久久久久久久冷 | 亚洲精品大片 | 国产婷婷精品av在线 | 91色网站| 精品福利视频一区二区三区 | 成人欧美一区二区三区在线观看 | 奇米视频777 | 欧美精品二区 | 日本人和亚洲人zjzjhd | 国产精品久久国产精品99 | 国产精品久久久久久吹潮日韩动画 | 在线观看中文字幕 | 天天射色综合 | 久久爱一区 | 亚洲美女一区 | 国产成人精品午夜视频免费 | 伊人网综合在线观看 | 欧美激情精品久久久久久变态 | 国产精品网址 | 青青草在线播放 | 久久久精彩视频 | 亚洲精品久久久久中文字幕二区 | 91精品国产乱码久久久久久久久 | 欧美成人a∨高清免费观看 老司机午夜性大片 | www免费视频 | 久久精品 | 久免费视频 | 中文字幕免费在线 | 国产一区二区精品自拍 | 欧美精品久久久久 | 一区二区三区av | 欧美人成在线视频 | 欧美午夜精品久久久久久浪潮 | 视频一二三区 | 国产精品久久久久婷婷二区次 | 国产精品a久久久久 | 在线视频亚洲 | 日韩久草 | 日韩a级片 | www在线视频 | 99福利视频 |