博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
007 使用SpringMVC开发restful API五--异常处理
阅读量:6652 次
发布时间:2019-06-25

本文共 2154 字,大约阅读时间需要 7 分钟。

一:任务

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 @ControllerAdvice16 public class ControllerExceptionHandler {17     //要处理的异常类18     @ExceptionHandler(UserNotExistException.class)19     //map转成json20     @ResponseBody21     //返回的状态码22     @ResponseStatus(HttpStatus.INTERNAL_SERVER_ERROR)23     public Map
handleUserNotExistException(UserNotExistException ex){24 Map
result=new HashMap<>();25 result.put("id", ex.getId());26 result.put("message", ex.getMessage());27 return result;28 }29 }

 

5.效果

  

 

  

 

转载地址:http://axjto.baihongyu.com/

你可能感兴趣的文章
2017.07.03 需求经理作业 第五组
查看>>
jsp开发知识
查看>>
深层次探究值类型与引用类型,以及值传递引用传递
查看>>
MyBatis输入输出映射
查看>>
django debug tool
查看>>
Java实现邮箱验证
查看>>
关于left join连接查询 两张表里有同名字段的问题
查看>>
IOC----LightInject
查看>>
免费资料下载导航
查看>>
adb命令
查看>>
HDU 2680 Choose the best route(多起点单终点最短路问题)题解
查看>>
js经典试题之原型与继承
查看>>
iPod nano将何去何从?
查看>>
南阳42--一笔画问题
查看>>
win10 1803 频繁死机,卡死不动
查看>>
zabbix(x)
查看>>
【ccf- csp201509-4】高速公路
查看>>
Restful Api 的好与坏
查看>>
Python 特殊函数(filter, map, reduce等)
查看>>
[BZOJ4198][Noi2015]荷马史诗
查看>>