异常处理模块

异常处理的2中方法
第一种简单异常处理
第二种自定义异常处理

第一种使用简单异常处理方式@[第一种简单异常处理]
1.生成异常

package com.xckj.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;

@Controller
@RequestMapping("/user")
public class UserController {
    @RequestMapping("/quick")
    public void quick(){
       String name ="zhangsan";
       int a = Integer.parseInt(name);
    }
}

2.在mvc中配置简单异常处理器

<!--系统配置,简单异常处理器-->
<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
    <property name="defaultErrorView" value="/error.jsp"></property><!--默认错误视图-->
    <property name="exceptionMappings">
        <map>
            <entry key="java.lang.ClassCastException" value="/error.jsp"></entry><!--异常类型,跳转视图名称视图名称-->
        </map>
    </property>
</bean>

3.编写错误跳转页面

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>error ${name}</h1>
</body>
</html>

第二种方式自定义异常处理类
1.定义自定义异常处理类实现HandlerExceptionResolver接口,重写里面的方法

package com.xckj.exception;

import org.springframework.web.servlet.ModelAndView;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class MyHandlerExceptionResolver implements org.springframework.web.servlet.HandlerExceptionResolver {
    @Override
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        //处理异常的代码实现
        //创建ModelAndView对象
        ModelAndView modelAndView = new ModelAndView();
        if(e instanceof ClassCastException){
            modelAndView.addObject("name","类型转换异常");
            modelAndView.setViewName("/error.jsp");
            return modelAndView;
        }else{
            modelAndView.addObject("name","未知异常");
            modelAndView.setViewName("/error.jsp");
            return modelAndView;
        }
    }
}

2.在mvc中配置自定义异常处理类

<!--自定义异常处理器-->
    <bean id="exceptionResolver" class="com.xckj.exception.MyHandlerExceptionResolver"/>

3.编写错误跳转页面

<%@ page contentType="text/html;charset=UTF-8" language="java" isELIgnored="false" %>
<html>
<head>
    <title>Title</title>
</head>
<body>
    <h1>error ${name}</h1>
</body>
</html>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值