TZ_06_SpringMVC_异常处理,自定义异常

1.SpringMVC异常处理的方式

2. 异常处理思路
  1>. Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进 行异常的处理。

3. SpringMVC的异常处理
1>. 自定义异常类

package com.hdh.utils;

public class SysException extends Exception {

    private String message;

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public SysException(String message) {
        super();
        this.message = message;
    }

}

2> 自定义异常处理器

package com.hdh.utils;

import javax.jws.WebParam.Mode;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;

public class SysExceptionResolver implements HandlerExceptionResolver {

    @Override
    public ModelAndView resolveException(HttpServletRequest request, HttpServletResponse response, Object handler,
            Exception ex) {
        // 获取异常
        SysException e = null;
        if (ex instanceof SysException) {
            e = (SysException) ex;
        }else {
            e=new SysException("系统正在维护。。。");
        }
        ModelAndView mView=new ModelAndView();    //将错误的信息保存到errorMsg并存入request域中
        mView.addObject("errorMsg",e.getMessage());    //跳转到异常处理的jsp
        mView.setViewName("error");
        return mView;
    }

}

3. 配置异常处理器

<bean id="sysExceptionResolver"  class="com.hdh.utils.SysExceptionResolver"></bean>

原文地址:https://www.cnblogs.com/asndxj/p/11381957.html

时间: 2024-11-14 12:39:28

TZ_06_SpringMVC_异常处理,自定义异常的相关文章

-1-6 java 异常简单介绍 java异常 异常体系 Throwable 分类 throws和throw 异常处理 自定义异常

异常 异常:异常就是Java程序在运行过程中出现的错误. 异常由来:问题也是现实生活中一个具体事务,也可以通过java 的类的形式进行描述,并封装成对象. 其实就是Java对不正常情况进行描述后的对象体现. Throwable |--Error        严重问题,我们不处理. |--Exception |--RuntimeException        运行期异常,我们需要修正代码 |--非RuntimeException 编译期异常,必须处理的,否则程序编译不通过 Exception和

SpringMVC的全局异常处理

@ControllerAdvice的使用 我们都知道做项目一般都会有全局异常统一处理的类,那么这个类在Spring中可以用@ControllerAdvice来实现. @ControllerAdvice ,这是一个非常有用的注解,顾名思义,这是一个增强的 Controller.使用这个 Controller ,可以实现三个方面的功能: 全局异常处理 全局数据绑定 全局数据预处理 灵活使用这三个功能,可以帮助我们简化很多工作,需要注意的是,这是 SpringMVC 提供的功能,在 Spring Bo

工作中的一些经验小结

控制层 返回值统一 AOP 也方便前台 AOP 统计执行时间记录日志 参数不要出现Request, Response 返回码定义 不要太细 日志打印 很多时候 生产出现问题都是客户反馈过来, 我们再去排查问题 日志就显得尤为重要 需要重现问题 很多人都是debug一遍 其实是比较费时间的, 尤其是业务逻辑复杂的时候 面对对象编程, 你面对debug编程. 有些人无论什么语言, 最后都变成了面对debug编程 总之 不要依赖debug 多依赖日志 日志记录的基本要求 能找到是那台机器 nginx

oracle 隐式游标,显示游标,游标循环,动态SELECT语句和动态游标,异常处理和自定义异常

游标的概念:    游标是SQL的一个内存工作区,由系统或用户以变量的形式定义.游标的作用就是用于临时存储从数据库中提取的数据块.在某些情况下,需要把数据从存放在磁 盘的表中调到计算机内存中进行处理,最后将处理结果显示出来或最终写回数据库.这样数据处理的速度才会提高,否则频繁的磁盘数据交换会降低效率.游标有两种类型:显式游标和隐式游标.在前述程序中用到的SELECT...INTO...查询语句,一次只能从数据库中提取一行数据,对于这种 形式的查询和DML操作,系统都会使用一个隐式游标.但是如果要

结构化异常处理(四)构建自定义异常

一.构建一个强类型异常来表示当前问题的独特细节效果会更好. 假定要构建一个名为CarIsDeadException的自定义异常来表示加速注定要损坏的汽车的错误. 1.创建一个派生自System.Exception/System.ApplicationException的新类(按照约定,所有的一场类均应以“Exception”后缀结束,这是.NET的最佳实践). 1 namespace CustomException 2 { 3 public class CarIsDeadException :

JAVA之旅(十)——异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别

JAVA之旅(十)--异常的概述,Try-Catch,异常声明Throws,多异常处理,自定义异常,Throw和Throws的区别 不知不觉,JAVA之旅这个系列已经更新到第十篇了,感觉如梦如幻,时间过得很快,转眼一个月就这样过去了,我们不多说,继续我们的JAVA之旅 一.异常的概述 异常算是程序中一个比较重要的环节了,我们首先来看一下异常的体系,我们举一个小例子,定义一个除法方法 //公共的 类 类名 public class HelloJJAVA { // 公共的 静态 无返回值 main方

python__基础 : 异常处理与自定义异常

异常处理方法一般为: try: ------code----- except Exception as e: # 抛出异常之后将会执行 print(e) else: # 没有异常将会执行 print('no Exception') finally: # 有没有异常都会执行 print('execute is finish') 可以用 raise 抛出一个异常,以下是一个输入字符太短的异常例子: class ShortInputException(Exception): '''自定义异常类'''

简单的实现登录拦截及统一异常处理(自定义异常)

webmvc配置类: @Configuration public class WebMvcConfig extends WebMvcConfigurationSupport{ @Override protected void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LoginInterceptor()) .addPathPatterns("/**") .excludePath

springboot自定义异常和全局异常处理

模拟开发过程中的异常处理: 场景: 如果不对异常处理,返回给前端的将是一个异常错误页日志 所以要异常处理 首先准备个工具类:作为返回给前端的JsonData数据封装: 此类也可以作为工具类直接使用. package net.myclass.myvideo.domain; import java.io.Serializable; /** * 功能描述:工具类 * * <p> 创建时间:May 14, 2018 7:58:06 PM </p> */ public class JsonD