返回顶部
首页 > 资讯 > 后端开发 > Python >Java SpringMVC异常处理机制详解
  • 412
分享到

Java SpringMVC异常处理机制详解

2024-04-02 19:04:59 412人浏览 泡泡鱼

Python 官方文档:入门教程 => 点击学习

摘要

目录异常处理的思路测试环境准备异常处理两种方式方式一:简单异常处理器方式二:自定义异常处理器总结异常处理的思路 测试环境准备 首先写一个DemoController控制层的类作为测

异常处理的思路

在这里插入图片描述

测试环境准备

首先写一个DemoController控制层的类作为测试访问的控制器


package com.itheima.controller;
import com.itheima.exception.MyException;
import com.itheima.service.DemoService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.WEB.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import java.io.FileNotFoundException;
@Controller
public class DemoController {
    @Autowired
    private DemoService demoService;
    @RequestMapping(value="/show")
    public String show() throws FileNotFoundException, MyException {
        System.out.println("show running");
        demoService.show1();
//        demoService.show2();
//        demoService.show3();
//        demoService.show4();
//        demoService.show5();
        return "index";
    }
}

然后在service中写上接口DemoService和实现类DemoServiceImpl


package com.itheima.service;
import com.itheima.exception.MyException;
import java.io.FileNotFoundException;
public interface DemoService {
    public void show1();
    public void show2();
    public void show3() throws FileNotFoundException;
    public void show4();
    public void show5() throws MyException;
}

package com.itheima.service.impl;
import com.itheima.exception.MyException;
import com.itheima.service.DemoService;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.InputStream;
public class DemoServiceImpl implements DemoService {
    public void show1() {
        System.out.println("类型转换异常");
        Object str = "zhangsan";
        Integer num = (Integer) str;
    }
    public void show2() {
        System.out.println("抛出除零异常");
        int i = 1 / 0;
    }
    public void show3() throws FileNotFoundException {
        System.out.println("文件找不到异常");
        InputStream in = new FileInputStream("C:/xxx/xxx/xxx.txt");
    }
    public void show4() {
        System.out.println("空指针异常");
        String str = null;
        str.length();
    }
    public void show5() throws MyException {
        System.out.println("自定义异常");
        throw new MyException();
    }
}

其中的MyException是自定义异常,被声明在itheima的另一个包下,此时还未任何实现:

在这里插入图片描述

访问一下/show,因为先调用的show1方法,所以会报类型转换异常:

在这里插入图片描述

环境准备完毕。

异常处理两种方式

在这里插入图片描述

方式一:简单异常处理器

在这里插入图片描述

方式一很简单,去做对应的配置文件配置就可以了:


<!--配置异常处理器-->
    <bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver">
        <!--如果下面全都对不上,就会采用这个默认的defaultErrorView所对应的value值的视图-->
        <property name="defaultErrorView" value="error"></property>
        <property name="exceptionMappings">
            <map>
                <!--类型转换异常,抛了什么异常,就会跳转到value值对应的字符串显示的页面-->
                <entry key="java.lang.ClassCastException" value="error"></entry>
                <!--自定义异常-->
                <entry key="com.itheima.exception.MyException" value="error"></entry>
            </map>
        </property>
    </bean>

然后再进行访问,可以看到跳转到了error视图:

在这里插入图片描述

方式二:自定义异常处理器

步骤;

1、创建异常处理器类实现HandlerExceptionResolver

2、配置异常处理器

3、编写异常页面

4、测试异常跳转

演示;

第一步:创建异常处理器类实现HandlerExceptionResolver


package com.itheima.resolver;
import com.itheima.exception.MyException;
import org.springframework.web.servlet.HandlerExceptionResolver;
import org.springframework.web.servlet.ModelAndView;
import javax.servlet.Http.httpservletRequest;
import javax.servlet.http.HttpServletResponse;
public class MyExceptionResolver implements HandlerExceptionResolver {
    
    public ModelAndView resolveException(HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse, Object o, Exception e) {
        ModelAndView md = new ModelAndView();
        
        if(e instanceof MyException){
            md.addObject("info","自定义异常");
        }else if(e instanceof ClassCastException){
            md.addObject("info","类型转换异常");
        }
        md.setViewName("error");
        return md;
    }
}

第二步:在springMVC的配置文件当中配置异常处理器


 <!--自定义异常处理器-->
    <bean class="com.itheima.resolver.MyExceptionResolver"></bean>

测试访问就行了。

总结

在这里插入图片描述

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注编程网的更多内容!

--结束END--

本文标题: Java SpringMVC异常处理机制详解

本文链接: https://lsjlt.com/news/134786.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Java SpringMVC异常处理机制详解
    目录异常处理的思路测试环境准备异常处理两种方式方式一:简单异常处理器方式二:自定义异常处理器总结异常处理的思路 测试环境准备 首先写一个DemoController控制层的类作为测...
    99+
    2024-04-02
  • 详解SpringMVC中的异常处理机制
    目录开头1.ExceptionHandlerExceptionResolver2. demo开头 试想一下我们一般怎么统一处理异常呢,答:切面。但抛开切面不讲,如果对每一个contr...
    99+
    2024-04-02
  • SpringMVC项目异常处理机制详解
    目录1、异常分类2、自定义项目业务异常3、自定义项目系统异常4、其他异常5、异常代码6、异常处理器7、异常发生1、异常分类 通常分为三类:系统异常(SystemException),...
    99+
    2024-04-02
  • Java SpringMVC拦截器与异常处理机制详解分析
    目录拦截器(interceptor)的作用拦截器快速入门案例:用户登录权限控制拦截器方法说明SpringMVC异常处理异常处理的思路异常处理两种方式拦截器(interceptor)的...
    99+
    2024-04-02
  • Java SpringMVC 异常处理SimpleMappingExceptionResolver类详解
    Spring3.0 对异常的处理方式总共有两种: 一种是使用 HandlerExceptionResolver 接口,并且 Spring 已经提供默认的实现类 Simple...
    99+
    2024-04-02
  • Java 详解异常的处理机制
    目录1.异常概述与异常体系结构1.1异常概述1.2运行时异常与编译时异常1.3异常体系结构2.常见异常1.ArrayIndexOutOfBoundsException2.NullPo...
    99+
    2024-04-02
  • 详解SpringMVC的拦截器与异常处理机制
    目录1.SpringMVC拦截器1.1拦截器(interceptor)的作用1.2拦截器和过滤器的区别1.3拦截器的快速入门1.4多拦截器操作1.5拦截器方法说明2.SpringMV...
    99+
    2024-04-02
  • Java try-catch-finally异常处理机制详解
    Java中的try-catch-finally异常处理 一、异常处理 异常(Exception):是在运行发生的不正常情况。 原始异常处理: if(条件) {   处理办法1  ...
    99+
    2024-04-02
  • Java SpringMVC异步处理详解
    目录1、本篇内容2、看段代码,分析问题3、springmvc 中异步处理4、模拟非超时请求5、模拟超时请求6、总结1、本篇内容 本文让大家掌握 springmvc 中异步处理请求,特...
    99+
    2024-04-02
  • SpringMVC 异常处理机制与自定义异常处理方式
    目录SpringMVC默认处理的几种异常@ResponseStatus异常处理的顺序自定义异常类(SpringMVC的异常处理)①:自定义异常类②:自定义异常处理器③:配置我们的异常...
    99+
    2024-04-02
  • 详解SpringMVC中的异常处理
    目录1.SpringMVC默认三个异常处理类2.@ExceptionHandler注解异常3.@ResponseStatus注解异常4.DefaultHandlerException...
    99+
    2024-04-02
  • 【JAVA 异常处理机制】
    文章目录 前言1.java异常处理机制2.try-catch3.finally块4.自动关闭特性5.throw关键字6.throws关键字7.throws的重写规则8.异常分类9.异常API10.自定义异常总结: 前言 在Ja...
    99+
    2023-08-23
    java 开发语言 学习 intellij idea
  • Java超详细梳理异常处理机制
    目录一、异常概述与异常体系结构1. 异常概述引入概念2. 分类2.1 Error vs Exception2.2 编译时异常vs运行时异常3. 常见异常3.1 分类3.2 代码演示二...
    99+
    2024-04-02
  • Golang中异常处理机制详解
    前言 通常我们需要编写好的错误处理方式,在了避免某些程序员滥用异常,于是Go这里直接把异常这一块给砍掉了,最终还是通过返回值来判断程序的异常情况,毕竟Go可是支持多返回值的语言,比如...
    99+
    2024-04-02
  • Java异常处理机制深入理解
    目录1.初识异常2.异常的基本用法异常处理流程3.为什么要使用异常?异常应只用于异常的情况4. 异常的种类 4.1 受查异常解决方案:4.2非受查异常5.如何使用异常避免不...
    99+
    2024-04-02
  • Java异常的处理机制
    图片解析: 1.生成字节码文件的过程可能产生编译时异常(checked),由字节码文件到在内存中加载、运行类此过程可能产生运行时异常(unchecked), 2.JAVA程序在执行...
    99+
    2024-04-02
  • Java的异常处理机制
    本篇内容介绍了“Java的异常处理机制”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!Java 异常处理异常是程序中的一些错误,但并不是所有的...
    99+
    2023-06-02
  • Java 超详细讲解Spring MVC异常处理机制
    目录异常处理机制流程图异常处理的两种方式简单异常处理器SimpleMappingExceptionResolver自定义异常处理步骤本章小结异常处理机制流程图 系统中异常包括两类: ...
    99+
    2024-04-02
  • SpringMVC异常处理
    8.SpringMVC异常处理 1.1 异常处理的思路 系统中异常包括两类:预期异常和运行时异常RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试等手段...
    99+
    2023-09-01
    spring java mybatis
  • Java线程的异常处理机制详情
    目录前言线程的异常处理机制小结线程池场景下的异常处理小结其他前言 启动一个Java程序,本质上是运行某个Java类的main方法。我们写一个死循环程序,跑起来,然后运行jvisual...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作