springboot ErrorController
在編寫springboot專案的時候,後端操作經常會丟擲異常,而這些異常是前端無法顯示的,所以我們還需切換到後端命令列才能看到具體的錯誤細節,非常麻煩,尤其是將專案部署到伺服器上的時候,未解決這個問題,我們可以通過實現ErrorController介面,來在前端顯示報錯資訊。
CommonErrorController
程式碼:
package com.example.commonerror.controller;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.web.servlet.error.ErrorAttributes;
import org.springframework.boot.web.servlet.error.ErrorController;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.context.request.WebRequest;
import javax.servlet.http.HttpServletRequest;
import java.util.Map;
@RestController
public class CommonErrorController implements ErrorController {
@Autowired
private ErrorAttributes errorAttributes;
/**
* 預設錯誤
*/
private static final String path_default = "/error";
@Override
public String getErrorPath() {
return path_default;
}
/**
* JSON格式錯誤資訊
*/
@RequestMapping(value = path_default, produces = {MediaType.APPLICATION_JSON_VALUE})
public String error(HttpServletRequest request, WebRequest webRequest) {
Map<String, Object> body = this.errorAttributes.getErrorAttributes(webRequest, true);
return body.toString();
}
}
測試
測試程式碼
package com.example.commonerror.controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class TestController {
@GetMapping("/test")
public String test(){
return "test";
}
@GetMapping("/test1")
public String test1(){
throw new RuntimeException("丟擲異常");
}
}
測試結果
不報錯的執行
報錯的執行
原始碼
相關文章
- SpringBoot(19)---SpringBoot整合ApolloSpring Boot
- SpringBoot(17)---SpringBoot整合RocketMQSpring BootMQ
- SpringBoot(十六)_springboot整合JasperReSpring Boot
- springboot----二、Hello,SpringBoot!Spring Boot
- SpringBoot之路(一)之初識SpringBootSpring Boot
- SpringBoot之:SpringBoot中使用HATEOASSpring Boot
- springbootSpring Boot
- 【SpringBoot系列】SpringBoot註解詳解Spring Boot
- springboot自學(6)springboot核心原理Spring Boot
- SpringBoot之:SpringBoot的HATEOAS基礎Spring Boot
- SpringBoot:結合 SpringBoot 與 Grails 3Spring BootAI
- 企業 SpringBoot 教程(六)springboot整合mybatisSpring BootMyBatis
- _007_SpringBoot_SpringBoot的核心檔案Spring Boot
- SpringBoot整合Mybatis-Plus(SpringBoot3)Spring BootMyBatis
- 開始SpringBoot的學習&springboot概述Spring Boot
- SpringBoot-SpringBoot中的事件機制Spring Boot事件
- 【SpringBoot Demo】MySQL + JPA + Hibernate + Springboot + Maven DemoSpring BootMySqlMaven
- SpringBoot | 2.1 SpringBoot自動裝配原理Spring Boot
- 【SpringBoot2.0系列09】SpringBoot之rabbiSpring Boot
- springboot(七):springboot+mybatis多資料Spring BootMyBatis
- SpringBoot(一)Spring Boot
- SpringBoot 技巧Spring Boot
- SpringBoot AdminSpring Boot
- [Spring]springbootSpring Boot
- springboot 工具Spring Boot
- springboot 配置Spring Boot
- springboot配置Spring Boot
- _005_SpringBoot_使用IDEA建立SpringBoot專案Spring BootIdea
- SpringBoot基礎24_SpringBoot簡介1Spring Boot
- SpringBoot | SpringBoot 是如何實現日誌的?Spring Boot
- springboot-admin對springboot專案監控Spring Boot
- 【SpringBoot】分析 SpringBoot 中的擴充套件點Spring Boot套件
- 【Elastic-2】SpringBoot整合ELK、SpringBoot寫ESASTSpring Boot
- SpringBoot資料訪問(一) SpringBoot整合MybatisSpring BootMyBatis
- SpringBoot資料訪問(三) SpringBoot整合RedisSpring BootRedis
- SpringBoot資料訪問(二) SpringBoot整合JPASpring Boot
- 企業級 SpringBoot 教程 (八)springboot整合spring cacheSpring Boot
- _006_SpringBoot_第一個SpringBoot程式的解析Spring Boot