目标:springboot全局异常捕获

概述

1、自定义异常处理

package com.itheima.exeception;

/** * @Author David老师 * @Description * @Tel/微信:***** * @Version 1.0 **/public class BussinssException extends  RuntimeException {

    private String code;    private String msg;

    public BussinssException(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;    }}

2:自定义异常

package com.itheima.exeception;

import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.ControllerAdvice;import org.springframework.web.bind.annotation.ExceptionHandler;import org.springframework.web.bind.annotation.ResponseBody;

import java.util.HashMap;import  java.util.Map;

/** * @Author David老师 * @Description * @Tel/微信:150******37 * @Version 1.0 **/@ControllerAdvicepublic class MyControllerAdvice {

    /*     * @Author David老师     * @Tel/微信:150****37     * @Description 所有的全局异常,只要作用在@RequestMapping方法上,所有的异常信息都会被捕获到。     * @Date 16:57 2019/5/29     * @Param [ex]     * @return java.util.Map     **/    @ResponseBody    @ExceptionHandler(value = Exception.class)    public Map errorHandler( Exception ex){        Map map = new HashMap<>();        map.put("code",-1);        map.put("msg",ex.getMessage());        return map;    }    @ResponseBody    @ExceptionHandler(value = BussinssException.class)    public Map errorHandler2( BussinssException ex){        Map map = new HashMap<>();        map.put("code",ex.getCode());        map.put("msg",ex.getMsg());        return map;    }}

3:UserServiceImpl

@Override@Transactionalpublic int saveUser(User user) {    try{        return userDao.saveUser(user);//取钱    }catch(Exception ex){        throw  new BussinssException("409","保存用户失败,请检查");    }}

测试

package com.itheima.web;

import com.itheima.exeception.BussinssException;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.beans.factory.annotation.Value;import org.springframework.core.env.Environment;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RestController;

import javax.validation.Valid;

/** * @Author David老师 * @Description * @Tel/微信:150*****37 * @Version 1.0 **/@RestControllerpublic class UserController {

   @Autowired    private IUserService userService;

      /**     * 保存用户     * @param user     */    @PostMapping("/saveUser")    public int saveUser(User user){        return userService.saveUser(user);    }

}

使用postman访问:

http://localhost:8081/saveUser?username=zhangsan&password=23w4e5r65t7y8

回复关键词

JUC    分布式限流   消息队列     alibaba     JVM性能调优       Docker

看更多精彩教程

别忘了点个在看哦!转发那就太好了!

捕获异常_SpringBoot的异常处理全局异常捕获(图文资料)相关推荐

  1. java报错空指针异常_springboot全局异常捕获,真香

    全局异常捕获 什么是异常?程序在启动或者运行时没有按照预期的执行,在执行途中发生某种未知的错误,导致程序非正常停止或者报错. 在我们的程序中,肯定会伴随着很多的异常,启动时:空对象.找不到数据库.用户 ...

  2. 《全局异常捕获》劝劝潘子吧,别再用trycatch来处理异常了

    人世仙家本自殊,何须相见向中途.惊鸿瞥过游龙去,漫恼陈王一事无. 嗨,大家好,我是洛神,性别男.一个来自快乐星球的程序员. 欢迎大家专注我的公众号[程序员洛神],不仅分享技术,还会分享生活趣事.体育. ...

  3. Spring 全局异常捕获

    引言 前后端分离开发,后台有时候会出现不可预知的异常(运行时异常),在实际生产中通常需要统一返回符合一定响应结构的异常信息给前端,这一方面可以避免用户看到后台的报错信息,一方面也是保护后端程序免受恶意 ...

  4. 编码技巧——全局异常捕获统一的返回体业务异常

    在开发中,关于异常的捕获曾经是一个头疼的问题:本篇介绍几个方法,如何优雅的捕获处理业务异常: 已检查异常和未检查异常? 先做个介绍,异常Exception分为运行时异常(RuntimeExceptio ...

  5. SpringBoot配置全局异常捕获

    SpringBoot中自带的异常捕获机制返回的默认页面比较丑,对用户来说不够人性化.所以这篇文章来讲解SpringBoot钟自定义全局异常捕获. 本文的源码已经上传GitHub:https://git ...

  6. Android开发之全局异常捕获

    Android开发之全局异常捕获 [转载请注明出处]本文出自付小华的博客 http://blog.csdn.net/klxh2009 今晨谷歌正式发布Android 8.0,新版本的Android O ...

  7. @ExceptionHandler全局异常捕获响应体返回中文乱码

    问题现象 在全局异常处理后,发现响应体返回中文的错误信息竟然乱码了,如下: 问题原因 Controller @RequestMapping(value = "/user/{user_id}& ...

  8. Spring boot异常统一处理方法:@ControllerAdvice注解的使用、全局异常捕获、自定义异常捕获

    Spring boot异常统一处理方法:@ControllerAdvice注解的使用.全局异常捕获.自定义异常捕获 参考文章: (1)Spring boot异常统一处理方法:@ControllerAd ...

  9. atitit.js浏览器环境下的全局异常捕获

    atitit.js浏览器环境下的全局异常捕获 window.onerror = function(errorMessage, scriptURI, lineNumber) { var s= JSON. ...

最新文章

  1. git 硬回滚和软回滚
  2. 【C++】 C++标准模板库(六) Queue
  3. EasyUI DataGrid 中字段 formatter 格式化不起作用
  4. ECS实践案例丨逻辑卷的创建和扩容操作指导
  5. Spring中的InitializingBean接口
  6. C Tricks(六) —— 数组去重的实现
  7. OpenGL基础49:高度贴图(下)
  8. 用户空间与内核空间数据交换的方式(3)------seq_file
  9. sql limit offset 的用法 但在SqlServer中用不了
  10. Delphi中WebBrowser(或者EmbeddedWebBrowser)控件打开部分网站报“Invalid floating point operation”异常的解决方法...
  11. 国图三维不动产创新实践:三维地籍图制作
  12. iOS 友盟分享总结
  13. SecureCRT 设置会话永不过期
  14. c语言通过编译器编译转换为机器码,assembler - TechTarget数据中心
  15. Think Pad E570重装Win10系统没有外放喇叭声音
  16. 数位板使用技巧_保护您的眼睛技巧,以帮助防止数位眼疲劳
  17. 名词、指示代词和不定代词、形容词、副词
  18. vba遍历字符串_Notes-VBA-遍历
  19. airbnb机器学习模型_机器学习基础:预测Airbnb价格
  20. PyQt5+fitz实现图片与PDF互相转换

热门文章

  1. 15.泡菜:pickle模块
  2. 训练深度神经网络的时候需要注意的一些小技巧
  3. 基于当前分支的某一个commit号创建分支
  4. Tomcat7目录结构详解(非常详细)
  5. 学习笔记——Maven pom.xml配置详解
  6. Oracle编程入门经典 第6章 在Oracle中处理语句
  7. C++ WINDOWS API 第2章 Windows API概要
  8. Coursera课程Python for everyone:chapter3
  9. 海量数据处理算法—Bit-Map
  10. 算法时间复杂度分析基础