zoukankan      html  css  js  c++  java
  • springboot单元测试之全局异常(四)

    1结构

     2新建User类,添加属性,添加set/get方法,添加构造方法

    package com.example.demo.bean;

    import java.util.Date;


    import com.fasterxml.jackson.annotation.JsonFormat;
    import com.fasterxml.jackson.annotation.JsonIgnore;
    import com.fasterxml.jackson.annotation.JsonProperty;

    public class User {
    /**
    * 姓名
    */
    private String name;
    /**
    * 性别
    * @JsonIgnore不返回字段
    */
    @JsonIgnore
    private String sex;
    /**
    * 工作
    */

    private String work;
    /**
    * 住址
    */
    private String address;
    /**
    * 存款
    * @JsonProperty("account") 不返回真实的字段给别人,返回别名给别人
    */
    @JsonProperty("account")
    private int deposit;
    /**
    * 创建时间
    * @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8") 转换时间格式
    */
    @JsonFormat(pattern="yyyy-MM-dd hh:mm:ss",locale="zh",timezone="GMT+8")
    private Date createTime;
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getSex() {
    return sex;
    }
    public void setSex(String sex) {
    this.sex = sex;
    }
    public String getWork() {
    return work;
    }
    public void setWork(String work) {
    this.work = work;
    }
    public String getAddress() {
    return address;
    }
    public void setAddress(String address) {
    this.address = address;
    }
    public int getDeposit() {
    return deposit;
    }
    public void setDeposit(int deposit) {
    this.deposit = deposit;
    }
    public Date getCreateTime() {
    return createTime;
    }
    public void setCreateTime(Date createTime) {
    this.createTime = createTime;
    }
    public User(String name, String sex, String work, String address, int deposit, Date createTime) {
    super();
    this.name = name;
    this.sex = sex;
    this.work = work;
    this.address = address;
    this.deposit = deposit;
    this.createTime = createTime;
    }
    }

     3添加一个异常类ExceptionController

    package com.example.demo.controller;

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

    import javax.servlet.http.HttpServletRequest;

    import org.slf4j.Logger;
    import org.slf4j.LoggerFactory;
    import org.springframework.context.annotation.PropertySource;
    import org.springframework.web.bind.annotation.ExceptionHandler;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.bind.annotation.RestControllerAdvice;

    import com.example.demo.bean.User;

    /**
    * 测试异常
    * @author Administrator
    * 可以不是用@RestController,使用@RestControllerAdvice
    */
    @RestController
    //@RestControllerAdvice
    @PropertySource("classpath:application.properties")
    public class ExceptionController {

    /**
    * 监听日志
    */
    private static final Logger log=LoggerFactory.getLogger(ExceptionController.class);
    /**
    * 编写一个异常
    * @return
    */
    @RequestMapping(value="/api/v1/test_exception")
    public Object index() {
    int i=1/0;
    return new User("李明", "35","高级程序员", "武汉市青山区" , 9000, new Date());
    }

    /**
    * @ExceptionHandler 捕获全局异常,处理所有不可知的异常
    * @ResponseBody可以注释掉,但是要在类上面添加@RestControllerAdvice,map返回的是json格式
    * @param e
    * @param request
    * @return
    */
    @ExceptionHandler(value = Exception.class)
    @ResponseBody
    Object handleException(Exception e,HttpServletRequest request) {
    log.error("url{},msg{}", request.getRequestURL(), e.getMessage());
    Map<String ,Object> map=new HashMap<>();
    map.put("code",200);
    map.put("msg", e.getMessage());
    map.put("url", request.getRequestURL());
    return map;
    }

    }

     

     run application ,可以查看结果

     

  • 相关阅读:
    用dockerFile和docker build命令 创建带两个数据卷的新镜像
    Docker 学习 3 镜像更多命令 docker commit 提交容器副本,使之成为一个新的镜像
    Docker学习笔记 2 更多的容器命令
    Docker的学习1 安装 与 基础篇
    SeekBar(拖动条)
    本周总结
    ProgressBar(进度条)
    Android对话框
    css语法
    css基础
  • 原文地址:https://www.cnblogs.com/zhushilai/p/13540216.html
Copyright © 2011-2022 走看看