chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

異常處理和錯(cuò)誤碼管理

科技綠洲 ? 來(lái)源:Java技術(shù)指北 ? 作者:Java技術(shù)指北 ? 2023-09-25 14:51 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

前言

在業(yè)務(wù)邏輯中,通常使用兩種方式處理異常:

  • 返回錯(cuò)誤碼:優(yōu)點(diǎn)是性能更好,但是不宜維護(hù)。
  • 拋出異常:可以使得代碼更清晰,可讀性更好,更符合面向?qū)ο蟆?/li>

選擇哪種需要根據(jù)場(chǎng)景而定,不管如何選擇,只要團(tuán)隊(duì)達(dá)成共識(shí),統(tǒng)一規(guī)范就可以。

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

自定義異常

創(chuàng)建一個(gè)業(yè)務(wù)異常基類 BaseException extends RuntimeException ,為其添加兩個(gè)屬性:code 和 message ,并添加一些常用的構(gòu)造方法。

其中, **code **的作用是儲(chǔ)存錯(cuò)誤碼,在返回前臺(tái)時(shí)將錯(cuò)誤碼返回給用戶。

圖片

拋出異常:

圖片

錯(cuò)誤碼管理

上面的自定義異??雌饋?lái)很簡(jiǎn)單,但是不夠優(yōu)雅和簡(jiǎn)單。怎么將錯(cuò)誤碼和錯(cuò)誤信息管理起來(lái),是我們接下來(lái)要解決的問(wèn)題。

我使用了 Enum ,先創(chuàng)建一個(gè)接口,其中包含兩個(gè)方法:

  • toCode():將枚舉值轉(zhuǎn)為 int 錯(cuò)誤碼,默認(rèn)已實(shí)現(xiàn);
  • getMsg():獲取枚舉中的異常信息。

圖片

下面創(chuàng)建一個(gè)枚舉類,實(shí)現(xiàn)上面的接口:

圖片

觀察上面的錯(cuò)誤碼枚舉類,我們發(fā)現(xiàn),枚舉值為 字母+錯(cuò)誤碼 ,屬性 msg 為錯(cuò)誤信息。

這樣將錯(cuò)誤碼異常信息統(tǒng)一管理起來(lái)之后,拋出異常的代碼就可優(yōu)化為:

圖片

然而這樣依然不夠優(yōu)雅,代碼量比之前還要長(zhǎng)。要是能夠只傳枚舉值一個(gè)參數(shù)就好了,那么我們繼續(xù)優(yōu)化。

創(chuàng)建一個(gè)異常類 BusinessException extends BaseException (創(chuàng)建一個(gè)子類,用來(lái)接收枚舉值),如下:

圖片

這樣我們就可以優(yōu)雅的拋出 BusinessException 了:

圖片

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

圖片

以上就是對(duì)異常處理的封裝,使用時(shí),只需要在每個(gè)業(yè)務(wù)模塊中新建一個(gè)異常枚舉類,用來(lái)統(tǒng)一管理異常;需要時(shí),在代碼中拋出 BusinessException 即可。

統(tǒng)一異常處理

最后,我們?cè)偈褂?@ControllerAdvice 和 @ExceptionHandler 注解做一下統(tǒng)一異常處理,它的作用是:

  • 業(yè)務(wù)異常打印到日志中
  • 系統(tǒng)異常封裝為 BaseException 進(jìn)行返回,同樣打印日志;
  • 這里也可以做其他操作,比如短信提醒等。

代碼如下:

圖片

圖片

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9441

    瀏覽量

    156076
  • 代碼
    +關(guān)注

    關(guān)注

    30

    文章

    4940

    瀏覽量

    73080
  • 異常處理
    +關(guān)注

    關(guān)注

    0

    文章

    15

    瀏覽量

    7446
  • 儲(chǔ)存
    +關(guān)注

    關(guān)注

    3

    文章

    203

    瀏覽量

    22953
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux錯(cuò)誤碼介紹

    處理一些程序出錯(cuò)語(yǔ)句中,不管是用戶空間還是內(nèi)核空間,通常都會(huì)返回一個(gè)錯(cuò)誤碼。例如`return -ERROR`。
    發(fā)表于 06-27 15:48 ?2625次閱讀
    Linux<b class='flag-5'>錯(cuò)誤碼</b>介紹

    嵌入式C編程常用的異常錯(cuò)誤處理

    嵌入式C編程中,異常錯(cuò)誤處理是確保系統(tǒng)穩(wěn)定性和可靠性的重要部分。以下是一些常見(jiàn)的異常錯(cuò)誤處理方法及其詳細(xì)說(shuō)明和示例: 1. 斷言 (Assertions) 斷言用于在開(kāi)發(fā)階段捕獲程
    發(fā)表于 08-06 14:32

    掛載sramfs文件系統(tǒng)到外掛sdram ,掛載時(shí)返回錯(cuò)誤碼為-1,怎么解決?

    掛載sramfs文件系統(tǒng)到外掛sdram ,掛載時(shí)返回錯(cuò)誤碼為-1。求大神指點(diǎn)。謝謝各位大佬。
    發(fā)表于 09-16 06:41

    LabVIEW找不到錯(cuò)誤碼,USRP

    用LabVIEW操作NI USRP出現(xiàn)錯(cuò)誤:The specified session handle is invalid or does not correspond to an active session.并且查不到該錯(cuò)誤碼-1074118640,求大神指教
    發(fā)表于 04-14 16:50

    Linux如何查看系統(tǒng)提供的錯(cuò)誤碼

    在用Linux下寫(xiě)C的代碼的時(shí)候,利用open、create函數(shù)總是會(huì)出現(xiàn)錯(cuò)誤但是返回值為 -1 ,并不能定位錯(cuò)誤在哪里,所以查看系統(tǒng)提供的錯(cuò)誤碼就顯得特別有必要了需要包含頭文件并且定義一個(gè) extern int errno 之
    發(fā)表于 07-05 07:31

    為什么ucosiii發(fā)送消息會(huì)顯示錯(cuò)誤碼OS_ERR_INT_Q_FULL?

    ;TASK, P, 2, OS_OPT_POST_FIFO, &ERR); }}free(p);第一個(gè)可以發(fā)送出去消息,第二個(gè)就有錯(cuò)誤錯(cuò)誤碼是OS_ERR_INT_Q_FULL;malloc
    發(fā)表于 10-08 06:47

    采用CH573做藍(lán)牙主的時(shí)候,連接斷開(kāi)后返回錯(cuò)誤碼怎么處理?

    連接斷開(kāi)后返回的錯(cuò)誤碼代表上面意識(shí),從那個(gè)手冊(cè)可以看到,Disconnected...Reason:8
    發(fā)表于 07-28 07:26

    Oracle錯(cuò)誤碼大全

    Oracle錯(cuò)誤碼大全 ORA-00000 normal, successful completion Cause An operation has completed normally
    發(fā)表于 12-26 13:44 ?55次下載

    微辰金服新中付POS商戶警惕這五個(gè)錯(cuò)誤碼

      POS機(jī)一旦提示錯(cuò)誤碼怎么辦?微辰金服新中付POS商戶警惕這五個(gè)錯(cuò)誤碼?! ?、持卡人信用卡被刷拒付  2、因套碼導(dǎo)致信用卡消費(fèi)賬單與實(shí)際消費(fèi)地不同引發(fā)  3、轉(zhuǎn)賬業(yè)務(wù)刷拒付  4、同行競(jìng)爭(zhēng)惡意
    發(fā)表于 03-29 16:06 ?511次閱讀

    Bada系統(tǒng)學(xué)習(xí)-錯(cuò)誤碼(Error Codes)

    錯(cuò)誤碼是指在安裝或者加載bada應(yīng)用時(shí)發(fā)生錯(cuò)誤時(shí)顯示的編碼.每個(gè)錯(cuò)誤都有對(duì)應(yīng)的錯(cuò)誤碼.這個(gè)編碼是用于檢查這個(gè)錯(cuò)誤的原因.下圖
    發(fā)表于 04-02 14:35 ?974次閱讀

    C++異常機(jī)制解析

    傳統(tǒng)排錯(cuò) 我們?cè)缭?C 程序里面?zhèn)鹘y(tǒng)的錯(cuò)誤處理手段有: 終止程序,如 assert;缺陷是用戶難以接受,說(shuō)白了就是一種及其粗暴的手法,比如發(fā)生內(nèi)存錯(cuò)誤,除0錯(cuò)誤時(shí)就會(huì)終止程序。 返回錯(cuò)誤碼
    的頭像 發(fā)表于 11-09 14:16 ?771次閱讀
    C++<b class='flag-5'>異常</b>機(jī)制解析

    一站式統(tǒng)一返回值封裝、異常處理、異常錯(cuò)誤碼解決方案—最強(qiáng)的Sping Boot接口優(yōu)雅響應(yīng)處理

    1. 前言 統(tǒng)一返回值封裝、統(tǒng)一異常處理異常錯(cuò)誤碼體系的意義在于提高代碼的可維護(hù)性和可讀性,使得代碼更加健壯和穩(wěn)定。統(tǒng)一返回值封裝可以避免每一個(gè)接口都需要手工拼裝響應(yīng)報(bào)文;統(tǒng)一
    的頭像 發(fā)表于 06-20 15:42 ?1219次閱讀

    CAN總線常見(jiàn)錯(cuò)誤碼及其解決方法

    錯(cuò)誤碼,這些錯(cuò)誤碼可以幫助我們?cè)\斷和解決問(wèn)題。 1. 錯(cuò)誤幀(Error Frame) 錯(cuò)誤碼 :當(dāng)CAN控制器檢測(cè)到一個(gè)幀的錯(cuò)誤時(shí),會(huì)發(fā)送
    的頭像 發(fā)表于 11-12 10:05 ?1.3w次閱讀

    串口通信中常見(jiàn)的錯(cuò)誤碼含義

    在串口通信中,常見(jiàn)的錯(cuò)誤碼及其含義對(duì)于診斷和解決通信問(wèn)題至關(guān)重要。以下是一些常見(jiàn)的串口通信錯(cuò)誤碼及其解釋: CE_BREAK :檢測(cè)到中斷信號(hào)。這通常意味著接收到的某個(gè)字節(jié)數(shù)據(jù)缺少合法的停止位
    的頭像 發(fā)表于 11-22 09:26 ?3998次閱讀

    NCS放大器DAD3350常見(jiàn)錯(cuò)誤碼及解決方案

    NCS放大器DAD3350在工業(yè)應(yīng)用中可能出現(xiàn)的錯(cuò)誤碼及解決方案如下: ? 一、常見(jiàn)錯(cuò)誤碼及原因 ? ? 過(guò)載報(bào)警(如LV低電壓報(bào)警、OVC過(guò)電流報(bào)警) ? ? 原因 ?: 電源電壓異常(如過(guò)低或
    的頭像 發(fā)表于 07-12 09:41 ?691次閱讀