当前位置: 首页 > news >正文

同城推广有什么平台网页优化建议

同城推广有什么平台,网页优化建议,网站搜索优化公司,wordpress 文章是否有标签SpringBoot从入门到精通-第10章 异常处理 一、异常简介 传统的Java程序都是由try-catch语句捕捉异常,而Spring Boot项目采用了全局异常类的概念------所有方法均将异常抛出,并且专门安排一个类统一拦截并处理这些异常。这样做的好处是可以把异常处理的…

SpringBoot从入门到精通-第10章 异常处理

一、异常简介

传统的Java程序都是由try-catch语句捕捉异常,而Spring Boot项目采用了全局异常类的概念------所有方法均将异常抛出,并且专门安排一个类统一拦截并处理这些异常。这样做的好处是可以把异常处理的代码单独存储在一个全局异常处理类中。如果未来需要修改异常处理方案,就可以直接在这个全局异常处理类中进行修改。

二、拦截特定异常

为了拦截异常,Spring Boot提供了两个注解,即@ControllerAdvice和@ExceptionHandler()注解。

  • 其中@ControllerAdvice注解用于标注类,把被@ControllerAdvice注解标注的类称为全局异常处理类;
  • @ExceptionHandler()注解用于标注方法,把被@ExceptionHandler()注解标注的方法用于处理特定异常。
  • 使用@ControllerAdvice注解和@ExceptionHandler()注解拦截特定异常的语法如下:
@ControllerAdvice
public class TestContro { @ExceptionHandler(被拦截的异常类)public String exce(){}
}

2.1、先创建一个简单的springboot项目
在这里插入图片描述
在这里插入图片描述
编写控制器类TestContro:

package com.example._2025614spring_exception.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;@RestController
public class TestContro {@RequestMapping("/exception")public String exce(){System.out.println("exce fun");return "exce_fun";}
}

在这里插入图片描述

2.2、准备创建正常数组访问的代码

package com.example._2025614spring_exception.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;@RestController
public class TestContro {@RequestMapping("/exception")public String exce(){ArrayList<String> list = new ArrayList<>();list.add("aa");list.add("bb");list.add("cc");System.out.println("list[2]"+list.get(2));System.out.println("exce fun");return "exce_fun";}
}

启动后访问,控制台输出:
在这里插入图片描述

2.3、准备创建让数组访问超出边界的代码

package com.example._2025614spring_exception.controller;import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;@RestController
public class TestContro {@RequestMapping("/exception")public String exce(){ArrayList<String> list = new ArrayList<>();list.add("aa");list.add("bb");list.add("cc");System.out.println("list[2]"+list.get(2));System.out.println("list[3]"+list.get(3));System.out.println("exce fun");return "exce_fun";}
}

2.4、启动正常,访问http://127.0.0.1:8080/exception
在这里插入图片描述
后台日志:
在这里插入图片描述

2.5、添加异常拦截,这时候启动程序,访问时没有报错打印出来,说明异常被拦截了在这里插入图片描述

package com.example._2025614spring_exception.controller;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.util.ArrayList;
@ControllerAdvice
//@RestController
public class TestContro {@RequestMapping("/exception")@ExceptionHandler(ArrayIndexOutOfBoundsException.class)public String exce(){ArrayList<String> list = new ArrayList<>();list.add("aa");list.add("bb");list.add("cc");System.out.println("list[2]"+list.get(2));System.out.println("list[3]"+list.get(3));System.out.println("exce fun");return "exce_fun";}}

在这里插入图片描述
在这里插入图片描述

三、打印异常日志

添加异常信息打印

package com.example._2025614spring_exception.controller;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import java.lang.reflect.Array;
import java.util.ArrayList;
@ControllerAdvice
@RestController
public class TestContro {@RequestMapping("/exception")@ExceptionHandler(ArrayIndexOutOfBoundsException.class)public String exce(ArrayIndexOutOfBoundsException e){System.out.println("数组下标越界拦截到了,报错信息为:"+e);
//        ArrayList<String> list = new ArrayList<>();
//        list.add("aa");
//        list.add("bb");
//        list.add("cc");
//        System.out.println("list[2]"+list.get(2));
//        System.out.println("list[3]"+list.get(3));int[] arr = new int[]{1,2,3,4};System.out.println("arr[1]"+arr[1]);System.out.println("exce fun");return "exce_fun";}
}

访问:
在这里插入图片描述
在这里插入图片描述

四、缩小拦截异常的范围

4.1、拦截由某个或多个包触发的异常

@ControllerAdvice({"包名1", "包名2"})
@ControllerAdvice("包名")

4.2、拦截由某个或多个注解标注的类触发的异常

@ControllerAdvice(annotations={注解1.class, 注解2.class})
@ControllerAdvice(annotations=注解.class)

五、拦截自定义异常

  1. 创建自定义异常类,这个类必须集成RuntimeException运行时异常类,并重写父类的构造方法。
  2. 创建全局异常类,用于拦截自定义的异常。
  3. 创建控制器类,指定自定义异常的触发条件。
http://www.yayakq.cn/news/708798/

相关文章:

  • 新能源东莞网站建设技术支持wordpress内页导航
  • 做相册的网站(网易河东建设局网站
  • 女生学网站建设好学吗义乌网站建设制作
  • 中核工建设集团有限公司网站招标代理公司注册
  • seo查询爱站网天津建设招标网站首页
  • 做淘宝客个人网站如何自己做设计效果图
  • 自己做网站卖机器设备太原电商网站设计
  • 网站备案 更名天天联盟广告网站如何做
  • 做商城网站报价图文排版设计
  • 网站关键词排名提高百度网盘如何获得2t免费空间
  • 网站建设玖金手指花总免费织梦网站模板
  • 电子商务网站建设软件开发课设微信相册怎么制作
  • 室内设计网站有哪些知乎5分钟宣传片报价明细
  • 双语网站模板英文网站字体大小
  • 金山区做网站公司宁波市建设工程检测协会网站
  • 文化公司做网站交文化事业费吗验证平台 wordpress
  • 用狗做头像的网站怎样做视频上网站赚钱
  • 中国字体设计网站网红营销的定义
  • 福清做网站去掉网站侧边栏
  • 口碑好网站建设资源中国网站建设哪家公司好
  • 网站提交收录入口建站网哪个好
  • 网站请及时续费书法网站模板下载
  • 装企营销网站建设专门做油画交流的网站
  • vs2013做网站潍坊免费模板建站
  • tp5网站开发步骤wordpress登陆地址修改密码
  • 第一站长网招商网站搭建费用
  • 专业信息网站建设方案wordpress怎么做伪静态页面
  • 做销售找客户的网站厦门建设网官方网站
  • wordpress 多网站吗ppt网站建设
  • 忻州做网站设计师要考什么证