一:任务

1.任务

  Spring Boot中默认的错误机制处理机制

  自定义异常处理

  

二:Spring Boot中的默认错误处理机制

1.目前

  浏览器访问的时候,

  restful 接口主要是根据状态码进行判断的。

  

2.新建

  如果想对404做处理

  

3.404.html

  

4.效果

  所以访问一个页面

  

三:自定义异常处理

1.说明

  客户端

  服务器返回异常信息只包含错误信息,有时候还需要返回其他的信息的时候。

  

2.exception的信息改变

  控制器

 1 //    @RequestMapping(value="/user/{id:\\d+}",method=RequestMethod.GET)
 2     @JsonView(User.UserDetailView.class)
 3     @GetMapping(value="/{id:\\d+}")
 4     public User getInfo(@PathVariable(value="id") String idid){
 5 //        System.out.println("idtt="+idid);
 6 //        User user=new User();
 7 //        user.setUsername("tom");
 8 //        return user;
 9         throw new UserNotExistException(idid);
10
11     }

  exception:

 1 package com.cao.exception;
 2
 3 public class UserNotExistException extends RuntimeException {
 4     private String id;
 5
 6     public UserNotExistException(String id) {
 7         super("UserNotExistException come");
 8         this.id=id;
 9     }
10
11     public String getId() {
12         return id;
13     }
14
15     public void setId(String id) {
16         this.id = id;
17     }
18
19 }

3.效果

  

4.新建一个控制器错误的控制类

  只要出现下面的异常,这里就会处理

 1 package com.cao.web.controller;
 2
 3 import java.util.HashMap;
 4 import java.util.Map;
 5
 6 import org.springframework.http.HttpStatus;
 7 import org.springframework.web.bind.annotation.ControllerAdvice;
 8 import org.springframework.web.bind.annotation.ExceptionHandler;
 9 import org.springframework.web.bind.annotation.ResponseBody;
10 import org.springframework.web.bind.annotation.ResponseStatus;
11
12 import com.cao.exception.UserNotExistException;
13
14 //只处理其他控制器丢出来的异常,不处理http请求
15 @ControllerAdvice
16 public class ControllerExceptionHandler {
17     //要处理的异常类
18     @ExceptionHandler(UserNotExistException.class)
19     //map转成json
20     @ResponseBody
21     //返回的状态码
22     @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
23     public Map<String,Object> handleUserNotExistException(UserNotExistException ex){
24         Map<String,Object> result=new HashMap<>();
25         result.put("id", ex.getId());
26         result.put("message", ex.getMessage());
27         return result;
28     }
29 }

5.效果

  

  

转载于:https://www.cnblogs.com/juncaoit/p/9710500.html

007 使用SpringMVC开发restful API五--异常处理相关推荐

  1. python django开发api_基于Django框架开发Restful api

    在上篇文章中,我们讲解了restful api的主要概念,让大家有初步的了解.这一篇中,我们将通过python的Django框架,来学习开发restful 架构的接口. 一. 开发环境 开发语言:Py ...

  2. vue安装Postcss_Flask和Vue.js构建全栈单页面web应用【通过Flask开发RESTful API】

    前言: 看了一些国外的关于介绍flask和vue的前后端分离的文章,但没看到比较通俗易懂,代码完善的,直到昨天看到一篇新出的文章,而且内容非常棒,所以翻译过来,供大家一起学习. 原文来自Develop ...

  3. Python自动化开发 - RESTful API

    本节内容 1.  RESTful 简介 2.  RESTful 设计指南 3.  Django REST Framework 最佳实践 4.  理论拓展与开放平台 5.  API文档化与测试 一  R ...

  4. php 开发restful api,用PHP创建RESTful API?

    如果您的服务支持所有CRUD操作,则始终建议实现RESTful接口.这样做并不是很难.我已经概述了下面的一些基础知识. RESTful服务只是做了一些事情: >它使用HTTP请求方法进行CRUD ...

  5. flask开发restful api系列(5)-短信验证码

    我们现在开发app,注册用户的时候,不再像web一样,发送到个人邮箱了,毕竟个人邮箱在移动端填写验证都很麻烦,一般都采用短信验证码的方式.今天我们就讲讲这方面的内容. 首先,先找一个平台吧.我们公司找 ...

  6. JavaWeb-RESTful_用SpringMVC开发RESTful

    RESTful简介 一种软件架构风格.设计风格,而不是标准,只是提供了一组设计原则和约束条件. 它主要用于客户端和服务器交互类的软件. 基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制 ...

  7. Restful API注解之@PathVariable和@JsonView详解

    **对于restful API的使用可以查看我之前的文章SpringMVC开发restful API查询请求 本文将在restful API的基础上介绍@PathVariable和@JsonView注 ...

  8. 玩转 SpringBoot 2 快速整合 | RESTful Api 篇

    概述 RESTful 是一种架构风格,任何符合 RESTful 风格的架构,我们都可以称之为 RESTful 架构.我们常说的 RESTful Api 是符合 RESTful 原则和约束的 HTTP ...

  9. 框架下cookie的使用_为什么自动化运维系统越来越多使用都RESTful API?

    Flask是轻量级.易于采用.文档化和流行的开发RESTful API的非常好的选择,也是笔者在工作中最常用的Flask Web框架之一.从根本上说,Flask是建立在可扩展性和简单性的基础之上的.F ...

最新文章

  1. 用css绘制各种形状
  2. android源码模块编译错误,Android 源码编译错误记录
  3. 2.10 m 个样本的梯度下降-深度学习-Stanford吴恩达教授
  4. 洛谷 P1703 那个什么密码2
  5. C#-数组定义及使用数组的好处 046
  6. 实验九——基本数据类型存储及应用总结
  7. python类型检查_python【数据类型检查】
  8. openmeeting开发心得及相关文档
  9. python经济统计学论文_统计学论文
  10. Allegro设置尺寸单位milmm
  11. Render to Disk
  12. 10款最佳项目管理工具推荐
  13. 机器学习算法应用场景实例六十则
  14. python基础----Day06
  15. Ubuntu18.04安装Fcitx中文输入法
  16. 分享三个网页访问(点击)统计脚本,展示访问来源地图分布
  17. 利器解读:Linux 内核调测中最最让开发者头疼的 bug 有解了|龙蜥技术
  18. 华北工控计算机硬件,华北工控 | 嵌入式计算机硬件在卫星导航系统中的应用
  19. LUOGU P1373 小a和uim之大逃离 题解
  20. B2B实现支付分账的简单方法

热门文章

  1. python鼠标位置_用python3 返回鼠标位置的实现方法(带界面)
  2. android按钮切换颜色,togglebutton
  3. 蓝桥杯java 大纲,2019 第十届蓝桥杯Java省赛B组个人总结
  4. 一维树桩数组区间更新、区间查询
  5. WPF自定义开关切换按钮
  6. 计算机网络—TCP协议
  7. 安装问题的审计(产生漏洞,抓包)
  8. bzoj 1687: [Usaco2005 Open]Navigating the City 城市交通(BFS)
  9. B - 简单暴力(计算今年第几天)
  10. [python] 字典 pop(key)函数:删除字典中key及其值,并返回该值