一:任务

1.任务

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

  自定义异常处理

  

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

1.目前

  浏览器访问的时候,

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

  

2.新建

  如果想对404做处理

  

3.404.html

  

4.效果

  所以访问一个页面

  

三:自定义异常处理

1.说明

  客户端

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

  

2.exception的信息改变

  控制器

 //    @RequestMapping(value="/user/{id:\\d+}",method=RequestMethod.GET)
@JsonView(User.UserDetailView.class)
@GetMapping(value="/{id:\\d+}")
public User getInfo(@PathVariable(value="id") String idid){
// System.out.println("idtt="+idid);
// User user=new User();
// user.setUsername("tom");
// return user;
throw new UserNotExistException(idid); }

  exception:

 package com.cao.exception;

 public class UserNotExistException extends RuntimeException {
private String id; public UserNotExistException(String id) {
super("UserNotExistException come");
this.id=id;
} public String getId() {
return id;
} public void setId(String id) {
this.id = id;
} }

3.效果

  

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

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

 package com.cao.web.controller;

 import java.util.HashMap;
import java.util.Map; import org.springframework.http.HttpStatus;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.ResponseStatus; import com.cao.exception.UserNotExistException; //只处理其他控制器丢出来的异常,不处理http请求
@ControllerAdvice
public class ControllerExceptionHandler {
//要处理的异常类
@ExceptionHandler(UserNotExistException.class)
//map转成json
@ResponseBody
//返回的状态码
@ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)
public Map<String,Object> handleUserNotExistException(UserNotExistException ex){
Map<String,Object> result=new HashMap<>();
result.put("id", ex.getId());
result.put("message", ex.getMessage());
return result;
}
}

5.效果

  

  

007 使用SpringMVC开发restful API五--异常处理的更多相关文章

  1. 004 使用SpringMVC开发restful API二--编写用户详情

    一:编写用户详情服务 1.任务 @PathVariable隐射url片段到java方法的参数 在url声明中使用正则表达式 @JsonView控制json输出内容 二:@PathVariable 1. ...

  2. 006 使用SpringMVC开发restful API四--用户信息的修复与删除,重在注解的定义

    一:任务 1.任务 常用的验证注解 自定义返回消息 自定义校验注解 二:Hibernate Validator 1.常见的校验注解 2.程序 测试类 /** * @throws Exception * ...

  3. 005 使用SpringMVC开发restful API三--处理创建请求

    一:主要任务 1.说明 @RequestBody 映射请求体到java方法的参数 日期类型参数的处理 @Valid注解 BindingResult验证请求参数的合法性并处理校验结果 二:@Reques ...

  4. springmvc/springboot开发restful API

    非rest的url写法: 查询 GET /user/query?name=tom 详情 GET /user/getinfo? 创建 POST /user/create?name=tom 修改 POST ...

  5. ASP.NET Core Web API 开发-RESTful API实现

    ASP.NET Core Web API 开发-RESTful API实现 REST 介绍: 符合REST设计风格的Web API称为RESTful API. 具象状态传输(英文:Representa ...

  6. 使用Spring MVC开发RESTful API

    第3章 使用Spring MVC开发RESTful API Restful简介 第一印象 左侧是传统写法,右侧是RESTful写法 用url描述资源,而不是行为 用http方法描述行为,使用http状 ...

  7. flask开发restful api系列(8)-再谈项目结构

    上一章,我们讲到,怎么用蓝图建造一个好的项目,今天我们继续深入.上一章中,我们所有的接口都写在view.py中,如果几十个,还稍微好管理一点,假如上百个,上千个,怎么找?所有接口堆在一起就显得杂乱无章 ...

  8. flask开发restful api

    flask开发restful api 如果有几个原因可以让你爱上flask这个极其灵活的库,我想蓝图绝对应该算上一个,部署蓝图以后,你会发现整个程序结构非常清晰,模块之间相互不影响.蓝图对restfu ...

  9. 描述怎样通过flask+redis+sqlalchemy等工具,开发restful api

    flask开发restful api系列(8)-再谈项目结构 摘要: 进一步介绍flask的项目结构,使整个项目结构一目了然.阅读全文 posted @ 2016-06-06 13:54 月儿弯弯02 ...

随机推荐

  1. 【原创】大数据基础之Marathon(2)marathon-lb

    marathon-lb 官方:https://github.com/mesosphere/marathon-lb 一 简介 Marathon load balancer (Marathon-LB) i ...

  2. ACM-ICPC 2018 焦作赛区网络预赛 I Save the Room

    Bob is a sorcerer. He lives in a cuboid room which has a length of AAA, a width of BBB and a height ...

  3. vscode 配置php

    vscode 的官网:https://code.visualstudio.com/docs/languages/php 添加扩张程序: php的设置: php格式化是安装“PHP Intelephen ...

  4. linux 批量进行:解压缩某一类压缩文件类型的文件

    1: 编写脚本 [oracle@oracle oracle]$ vim unzip.sh ziphome=/u01/app/oracle ziplist=`du -a $ziphome |grep ' ...

  5. http超文本协议

    当今web程序的开发技术真是百家争鸣,ASP.NET, PHP, JSP,Perl, AJAX 等等. 无论Web技术在未来如何发展,理解Web程序之间通信的基本协议相当重要, 因为它让我们理解了We ...

  6. jq插件模板

    !(function($,window, document, undefined){ function Plugin(ele,options){ //默认参数设置 this.defaults={ pa ...

  7. Brup Suite 渗透测试笔记(五)

    之前章节记到Burp Intruder功能区,接上次笔记 一.首先说再展开说说Brup Intruder功能, 1.标识符枚举Web应用程序经常使用标识符来引用用户账户,资产数据信息. 2.提取有用的 ...

  8. poj1155 依赖背包

    /* 依赖背包 dp[i][j]表示i结点为根的树选择j个用户时的最大剩余费用 即背包容量是j,价值是最大费用 */ #include<iostream> #include<cstr ...

  9. Nginx详解十七:Nginx深度学习篇之动静分离

    动静分离:通过中间件将动态请求和静态请求分离 作用:分离资源,减少不必要的请求消耗,减少请求延时 动静分离还有个好处就是,当动态请求的后端服务出问题了,只会影响动态的部分,静态资源不影响,照样加载 如 ...

  10. 华硕X75VB安装ubuntu12.10网卡不可用等相关问题总结

    笔记本相关信息: 电脑型号:华硕X75VB 笔记本电脑 处理器:i5-3230M 2.60GHz 双核 主板:华硕X75VB (英特尔 Ivy Bridge - HM76 Express芯片组) 内存 ...