java獲取異常信息,springboot 監聽所有異常_SpringBoot 全局異常配置及返回自定義頁面

 2023-11-19 阅读 38 评论 0

摘要:1. 全局異常的配置1. 創建異常處理類package com.test.spring_boot_demo.domain;java獲取異常信息,import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotat

1. 全局異常的配置

1. 創建異常處理類

package com.test.spring_boot_demo.domain;

java獲取異常信息,import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.web.bind.annotation.ExceptionHandler;

import org.springframework.web.bind.annotation.RestControllerAdvice;

jdbc回滾事務的方法。import javax.servlet.http.HttpServletRequest;

import java.util.HashMap;

import java.util.Map;

@RestControllerAdvice

java捕獲sql異常。public class CustomExtHandler {

private static final Logger LOG = LoggerFactory.getLogger(CustomExtHandler.class);

// 捕獲全局異常,處理所有不可知的異常

@ExceptionHandler(value = Exception.class)

java異步返回結果,// @ResponseBody

Object handleException(Exception e, HttpServletRequest request) {

LOG.error("url {}, msg {}", request.getRequestURL(), e.getMessage());

Map map = new HashMap<>();

java捕獲異常。map.put("code", "100");

map.put("msg", e.getMessage());

map.put("url", request.getRequestURL());

return map;

springboot,}

}

使用 @RestControllerAdvice 注解,可以不需要 @ResponseBody 注解

2. 創建controller接口

controller返回json數據?@GetMapping("/test/exception")

public Object testException() {

int n = 1/0;

return "test exception";

jdbc connection will not be、}

3. 訪問測試

瀏覽器訪問地址

http://localhost:8080/test/exception

返回結果

{"msg":"/ by zero","code":"100","url":"http://localhost:8080/test/exception"}

2. 觸發異常返回自定義頁面

1. 官網介紹

2. 添加模板引擎依賴

org.springframework.boot

spring-boot-starter-thymeleaf

3. 添加自定義異常類

package com.test.spring_boot_demo.domain;

public class MyException extends RuntimeException {

private String code;

private String msg;

public MyException(String code, String msg) {

this.code = code;

this.msg = msg;

}

public String getCode() {

return code;

}

public void setCode(String code) {

this.code = code;

}

public String getMsg() {

return msg;

}

public void setMsg(String msg) {

this.msg = msg;

}

}

4. 添加自定義異常監聽器

@ExceptionHandler(value = MyException.class)

Object handleMyException(MyException e) {

ModelAndView modelAndView = new ModelAndView();

modelAndView.setViewName("error.html");

modelAndView.addObject("msg", e.getMessage());

return modelAndView;

}

5. 添加Http請求接口

@GetMapping("/test/myexception")

public Object myexc() {

throw new MyException("500", "my ext 異常");

}

6. 測試

測試:瀏覽器訪問

http://localhost:8080/test/myexception

結果:跳轉到新的頁面

出異常 template

版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。

原文链接:https://hbdhgg.com/3/182592.html

发表评论:

本站为非赢利网站,部分文章来源或改编自互联网及其他公众平台,主要目的在于分享信息,版权归原作者所有,内容仅供读者参考,如有侵权请联系我们删除!

Copyright © 2022 匯編語言學習筆記 Inc. 保留所有权利。

底部版权信息