spring mvc全局异常处理,注解实现

ssm框架中的异常处理,可以是dao, service, controller 一直抛出异常,抛出就完事了。最终由全局异常类捕获,进行日志记录,页面跳转。…

核心注解

// 方法级别
@ExceptionHandler
// 全局异常类上
@ControllerAdvice
// @ControllerAdvice + @ResponseBody
@RestControllerAdvice

自定义异常类

package cn.bitqian.exception;
/*** define a exception class * @date 2020/11/9 11:33* @author echo lovely**/
public class MyException extends Exception {private static final long serialVersionUID = -3997793023922042500L;public MyException() {}public MyException(String msg) {super(msg);}public MyException(Throwable th) {super(th);}public MyException(String msg, Throwable th) {super(msg, th);}}

局部异常处理,当前类有用

package cn.bitqian.controller;import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;/*** 局部捕捉异常优先!* @author echo lovely* @date 2020/11/9 11:55*/
@RestController
public class DemoController {// 模拟空指针异常@GetMapping("/test1")public void test1(String str) {System.out.println(str.length());}// 捕捉当前controller 中的 空指针@ExceptionHandler(NullPointerException.class)public void nullPointerCatcher() {System.out.println("进入局部捕捉异常了。。");// 日志记录// 页面跳转// 其它操作...}}

全局异常处理类,捕捉公共的异常

package cn.bitqian.exception;import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;/*** 全局异常处理器* @author echo lovely**/
@ControllerAdvice
public class BaseExceptionHandler {// 收集空指针的异常@ExceptionHandler(NullPointerException.class)@ResponseBodypublic String nullPointerException(NullPointerException nullPointerException) {return "NullPointerException";}// 参数异常@ExceptionHandler(IllegalArgumentException.class)@ResponseBodypublic String illegalArgumentException(IllegalArgumentException illeagal) {return "IllegalArgumentException" + illeagal.getMessage();}// 自定义异常@ExceptionHandler(MyException.class)@ResponseBodypublic String myException(MyException e) {// 日志记录,跳转页面return "MyException" + e.getMessage();}// 最大的异常@ExceptionHandler(Exception.class)@ResponseBodypublic String allException(Exception e) {return e.getMessage();}}

bean配置请看:
https://blog.csdn.net/qq_44783283/article/details/108471951

异常映射处理器,当发生某种指定异常时,跳转到指定页面

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" ><!--  默认的错误信息页面--><property name="defaultErrorView" value=">/error.jsp"/><property name="exceptionMappings"><props><prop key="org.springframework.web.multipart.MaxUploadSizeExceededException">/error.jsp</prop></props></property>
</bean>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/420536.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt多线程学习:创建多线程

【为什么要用多线程&#xff1f;】 传统的图形用户界面应用程序都仅仅有一个运行线程&#xff0c;而且一次仅仅运行一个操作。假设用户从用户界面中调用一个比較耗时的操作&#xff0c;当该操作正在运行时&#xff0c;用户界面一般会冻结而不再响应。这个问题能够用事件处理和多…

sql server使用杂记

SqlServer导出数据库 navcat for sql server中打开连接&#xff0c;打开数据库&#xff0c;右键--数据传输&#xff0c;常规选项卡--模式选择dbo&#xff0c;目标选择连接&#xff08;选择你新建的库&#xff09;或者文件&#xff08;导出你要的sql文件位置&#xff09;&#x…

图解springmvc 执行流程

核心对象 DispatcherServlet 核心控制器负责请求&#xff0c;响应&#xff0c;数据的分发。HandlerMapping 处理器映射器&#xff0c;负责到controller中&#xff0c;找到对应的方法&#xff0c;返回给核心控制器。HandleAdapter 处理适配器&#xff0c;将handle找到的方法执行…

VMware下Windows Server 2012添加新磁盘

系统管理员在VM下新装了一台Windows Server 2012服务器&#xff0c;我在上面安装了SQL Server 2014 Standard版数据库&#xff0c;安装之初&#xff0c;只分配了一个C盘&#xff0c;我想在这台服务器上添加了三个磁盘&#xff08;虚拟磁盘&#xff09;&#xff0c;步骤如下截图…

mybatis Caused by: java.io.IOException: Could not find resource xxx.xml

翻译&#xff1a;找不到mybatis的映射配置文件。。。 配置文件名别写错了… <!-- 扫描mapper --> <mappers><!-- src/main/resources下 使用\ --><!-- <mapper resource"cn\bitqian\mapper\ordersMapper.xml"/> --><!-- src/mai…

mybatis新增返回主键值

mapper <?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"cn.bitqian.dao.OrdersMa…

hdu4011(水贪心)

点击打开链接hdu4011 水贪心&#xff1a; 注意I64d&#xff01; #include <stdio.h> #include <string.h> #include <iostream> #include <math.h> #include <algorithm> #include <vector> #include <map> #include <queue> …

测试===JUnit单元测试

测试一&#xff0c;测试分类二&#xff0c;单元测试Junit&#xff0c;你以为的junit只是Test注解吗&#xff0c;shallow..优点&#xff1a;规范&#xff1a;断言&#xff1a;案例demo&#xff1a;junit test case测试类创建&#xff0c;执行测试&#xff0c;结果反馈junit test…

iOS IAP教程

1. 创建应用首先进入iTunes Connect然后按下 Manage Your Applications接下来按下Add New Applicationbutton创建应用2. 在应用中创建IAP创建应用之后&#xff0c;在Manage Your Applications中点应用的图示&#xff0c;进入应用就会看到上图画面点击Manage In App Purchases就…

mybatis plus 新增,修改

simple curd1. mybatis-plus2. 以用户表为例&#xff0c;德莫1. mybatis-plus mybatis的升级版&#xff0c;curd的奇淫技巧。 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、…

Linux中fork的秘密

linux中fork&#xff08;&#xff09;函数详解 一、fork入门知识 一个进程&#xff0c;包括代码、数据和分配给进程的资源。fork&#xff08;&#xff09;函数通过系统调用创建一个与原来进程几乎完全相同的进程&#xff0c;也就是两个进程可以做完全相同的事&#xff0c;但如果…

mybatis-plus 使用乐观锁修改

title乐观锁与悲观锁解决方案code测试乐观锁与悲观锁 乐观锁&#xff1a;十分乐观&#xff0c;总是认为不会出现问题&#xff0c;无论干什么&#xff0c;都不会去上锁。如果出现了问题&#xff0c;就再次更新值测试。 悲观锁&#xff1a;十分悲观&#xff0c;认为总是出现问题…

EasyUI 在aspx页面显示高度不正常解决办法

<body class"easyui-layout"><form id"form1" runat"server"><table id"dg" class"easyui-datagrid"></table></form> </body> </html>这样写的时候&#xff0c;datagrid显示就不…

WPF中的动画——(四)缓动函数

缓动函数可以通过一系列公式模拟一些物理效果&#xff0c;如实地弹跳或其行为如同在弹簧上一样。它们一般应用在From/To/By动画上&#xff0c;可以使得其动画更加平滑。 var widthAnimation new DoubleAnimation() { From 0, To 320, Duration Tim…