主題結(jié)構(gòu)如下一個服務(wù)免不了全局異常處理,下面就簡述spring boot中的異常處理情況。
成都創(chuàng)新互聯(lián)公司始終堅持【策劃先行,效果至上】的經(jīng)營理念,通過多達十多年累計超上千家客戶的網(wǎng)站建設(shè)總結(jié)了一套系統(tǒng)有效的推廣解決方案,現(xiàn)已廣泛運用于各行各業(yè)的客戶,其中包括:成都塔吊租賃等企業(yè),備受客戶稱譽。
Logger為 org.slf4j:slf4j-api中的類,一個日志記錄,看個人是否需要
上圖中為一個全局處理異常Exception。由上圖可以看出主要使用的為@ControllerAdvice和@ExceptionHandler此兩個注解。而對于其余@ResponseBody和@ResponseStatus則更具個人具體情況是否使用。
當(dāng)然實際情況中異常情況不可能都是Exception,有可能細分做出不同處理。所有
@ExceptionHandler({FileNotFoundException.class})
@ResponseBody
@ResponseStatus(HttpStatus.NOT_FOUND)
public MapfileException(HttpServletResponse servletResponse, FileNotFoundException fileNotFoundException){logger.error(fileNotFoundException.getMessage(),fileNotFoundException);
Mapmap = new HashMap<>();
servletResponse.setStatus(404);
map.put("404",fileNotFoundException.getMessage());
return map;
}
上面代碼塊中則為對FileNotFoundException 此類異常的處理,可以看出這類異常咱們做出的處理為404,應(yīng)為異常形式不同,更具具體情況返回對應(yīng)狀態(tài)碼。此處@ReponseStatus(HttpStatus.NOT_FOUND)點進去可以看出
其狀態(tài)嘛也是404,相當(dāng)于我們的servletResponsel.setStatus(404)同一個道理,當(dāng)然我們這兩個都寫上了。
同理下面我們對SQLException異常進行捕獲處理,傳入?yún)?shù)為一個HttpServletResponse,和當(dāng)前捕獲的異常類型,此處參數(shù)和@ExceptionHandler里面的對應(yīng)。然后再進行捕獲后的對應(yīng)處理方式,和返回情況。此處sql異常我們返回的對應(yīng)狀態(tài)碼為500.為服務(wù)器的異常情況。Result為自己定義的返回類型,返回情況可以自己定義??梢許tring,可以Map等等。
@ExceptionHandler({SQLException.class})
@ResponseBody
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Result sqlException(HttpServletResponse response, SQLException sqlException){ Result result = new Result();
result.setCode(500);
logger.error(sqlException.getMessage());
return result;
}
當(dāng)然也可以自定義異常的拋出總結(jié)比如有些我們自定義的異常,(隨便取個名RRException).然后某處我們throw new RRException這個異常了。同理我們也進行捕獲在此處理。
同理將對應(yīng)@ExceptionHandler({RRException.class})然后參數(shù)也換成對應(yīng)的自定義異常類型。然后進行處理。結(jié)果放入HttpServletResponse 中即可。
總體來說主要就是創(chuàng)建個類,在類上使用到@ControllerAdvice,然后在捕獲對應(yīng)異常處理時用上@ExceptionHandler({異常類.class}),然后傳入對應(yīng)異常類參數(shù)和HttpServletResponse,對返回結(jié)構(gòu)在處理即可。但程序中拋出這些異常時,就會對應(yīng)跳到此處對返回結(jié)果處理。返回給前端。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機房具備T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級服務(wù)器適合批量采購,新人活動首月15元起,快前往官網(wǎng)查看詳情吧
本文名稱:【全局異常處理】-創(chuàng)新互聯(lián)
分享路徑:http://chinadenli.net/article22/dgegcc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供電子商務(wù)、品牌網(wǎng)站制作、網(wǎng)站排名、網(wǎng)站設(shè)計公司、域名注冊、云服務(wù)器
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容