新聞中心
1、 使用@ControllerAdvice注解2、 使用@ExceptionHandler注解3、 使用自定義錯誤頁面異常是程序中不可避免的一部分。
- 本文目錄導(dǎo)讀:
- 1、 使用@ControllerAdvice注解
- 2、 使用@ExceptionHandler注解
- 3、 使用自定義錯誤頁面

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序設(shè)計、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了定陶免費建站歡迎大家使用!
異常是程序中不可避免的一部分,它們可能會在代碼執(zhí)行過程中發(fā)生。如果不加以處理,異常可能會導(dǎo)致應(yīng)用崩潰或出現(xiàn)其他問題。因此,在開發(fā)應(yīng)用程序時,我們需要考慮如何優(yōu)雅地處理異常。
Spring Boot 提供了各種機制來處理和管理異常,包括使用注解、自定義錯誤頁面等方式。下面將詳細介紹 Spring Boot 中的幾種常見的異常處理方法。
1. 使用@ControllerAdvice注解
@ControllerAdvice 是一個基于 AOP 的全局異常處理器,在 Spring MVC 應(yīng)用程序中非常實用。通過 @ControllerAdvice 注解可以捕獲到所有 Controller 層拋出的 Exception 異常,并進行統(tǒng)一的封裝和返回給前端。
首先創(chuàng)建一個類并添加 @ControllerAdvice 注解:
```
@ControllerAdvice
public class GlobalExceptionHandler {
// 處理 RuntimeException 異常
@ExceptionHandler(RuntimeException.class)
public ResponseEntity
return new ResponseEntity<>("運行時錯誤:" + e.getMessage(), HttpStatus.INTERNAL_SERVER_ERROR);
}
}
在上述示例代碼中,handleRuntimeException 方法接收一個 RuntimeException 參數(shù),并將其信息封裝成 ResponseEntity 對象并返回給前端。
2. 使用@ExceptionHandler注解
除了使用 @ControllerAdvice 注解外,還可以在 Controller 層添加 @ExceptionHandler 注解來對特定類型的 Exception 進行處理。這種方式對于單個 Controller 的異常處理非常方便。
例如:
@RestController
public class UserController {
在上述示例代碼中,handleRuntimeException 方法與之前的一樣,但是它只會捕獲當前 Controller 中拋出的 RuntimeException 異常。
3. 使用自定義錯誤頁面
Spring Boot 還支持自定義錯誤頁面來顯示應(yīng)用程序發(fā)生的異常信息。當應(yīng)用程序拋出異常時,可以將用戶重定向到一個特定的錯誤頁面,并顯示相應(yīng)信息。
首先創(chuàng)建一個 error.html 頁面并添加以下內(nèi)容:
在上述示例代碼中,我們使用了 Thymeleaf 模板引擎來渲染 HTML 頁面,并通過 ${errorMessage} 來動態(tài)地展示具體的異常信息。
然后,在 Spring Boot 應(yīng)用程序配置文件(application.yml 或 application.properties)中添加以下屬性:
server.error.path=/error
spring.mvc.throw-exception-if-no-handler-found=true
spring.resources.add-mappings=false
# 配置 Whitelabel Error Page 關(guān)閉
server.error.whitelabel.enabled=false
最后,在 Controller 層中拋出異常并測試:
@GetMapping("/user")
public String getUser() {
throw new RuntimeException("獲取用戶信息失敗");
當訪問 /user 接口時,應(yīng)用程序?qū)伋鲆粋€ RuntimeException 異常,并重定向到我們之前定義的 error.html 頁面。
在本文中,我們介紹了 Spring Boot 中三種不同的異常處理方式:使用@ControllerAdvice 注解、使用@ExceptionHandler注解和自定義錯誤頁面。每種方式都有其優(yōu)點和缺點,具體選擇哪種方法取決于你的需求以及應(yīng)用程序的復(fù)雜度。
無論使用何種方式來處理異常,在開發(fā)過程中一定要注意對異常進行充分測試,并確保應(yīng)用程序能夠正確地捕獲和處理所有可能發(fā)生的異常。只有這樣才能保證應(yīng)用程序運行穩(wěn)定且可靠。
網(wǎng)站名稱:探尋SpringBoot07:如何優(yōu)雅地處理異常
鏈接地址:http://m.fisionsoft.com.cn/article/dhhdocp.html


咨詢
建站咨詢
