久久r热视频,国产午夜精品一区二区三区视频,亚洲精品自拍偷拍,欧美日韩精品二区

您的位置:首頁技術(shù)文章
文章詳情頁

Springboot全局異常捕獲及try catch區(qū)別解析

瀏覽:2日期:2023-05-09 11:39:29

今天在碼代碼的時候突然想到這個問題,覺得有點困惑。在網(wǎng)上也翻閱不少帖子其中有一個帖子給了我一個思路,其實也是解釋了基礎(chǔ)概念。

概念一:try catch 語句在try里面捕獲到異常之后會進入catch子句內(nèi),執(zhí)行catch內(nèi)的代碼。

概念二:springboot中的全局異常處理在捕獲到異常之后,異常代碼之后的語句是不會再運行了的

那么從我一開始思路理解開始,這個時候我覺得這2個的功能用處都是在代碼出現(xiàn)異常情況的時候?qū)ζ溥M行處理,且向調(diào)用者(或者就是用戶)返回一個友好的提示,那這2個有啥區(qū)別呢,重點來了……

業(yè)務(wù)場景一:某個字段必須保證唯一,例如:不允許存在同一個name的數(shù)據(jù),這是大家開發(fā)過程中很常見的了,調(diào)用新增接口的時候你需要先查一遍該數(shù)據(jù)在庫里是否存在,如果存在就返回“該數(shù)據(jù)已存在”,并且不再執(zhí)行后面的插入動作。到此時我個人覺得try catch 和全局異常處理達到的效果是一樣的。

業(yè)務(wù)場景二:某個字段是需要提示用戶“該數(shù)據(jù)已存在”,但是但是但是……我也允許你新增一個同樣的數(shù)據(jù),我就只是單純要提示一下你而已,并不阻止你繼續(xù)插入這條數(shù)據(jù)。這個時候有木有突然覺得就不一樣了,如果是全局異常處理的話,提示你“該數(shù)據(jù)已存在”之后就不運行后面的插入代碼了,而try catch是可以在拋出異常信息“該數(shù)據(jù)已存在”的時候進入catch代碼塊執(zhí)行插入操作的。

就是不要認為在有全局異常處理之后,try catch就沒用了。不知道我這樣算不算牽強的解釋

圖一(使用只全局異常的情況下,無法執(zhí)行到else子句內(nèi)的insert操作)

Springboot全局異常捕獲及try catch區(qū)別解析

圖二(在拋出異常之后,進入catch子句仍然執(zhí)行insert動作)

Springboot全局異常捕獲及try catch區(qū)別解析

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標簽: Spring
相關(guān)文章:
主站蜘蛛池模板: 黎城县| 信丰县| 新宾| 拜泉县| 镇赉县| 洪江市| 江永县| 梓潼县| 陇西县| 镇沅| 霸州市| 通许县| 岳池县| 安平县| 黑山县| 七台河市| 将乐县| 西乡县| 东乌珠穆沁旗| 乌恰县| 宝山区| 任丘市| 阜宁县| 清水河县| 徐闻县| 黔江区| 民丰县| 襄汾县| 赣州市| 织金县| 巢湖市| 青州市| 青龙| 招远市| 灌阳县| 方山县| 宝山区| 临城县| 泰宁县| 隆安县| 盐城市|