SpringMVC异常处理(7)

YOLO11改进 - 卷积Conv | StripBlockStripBlock大条带卷积块,通过顺序条带卷积捕获方向性长程依赖,强化高长宽比目标特征提取 | AAAI 2026 本文介绍了面向高纵横比目标检测的条带卷积模块——StripBlock,适用于遥感、船只、车道等细长结构目标的特征增强。该方法先通过 `5×5` 深度卷积提取局部空间信息,再利用 `1×19` 与 `19×1` 的正交长条卷积分别建模横向和纵向长程依赖,最后通过 `1×1` 卷积生成空间注意力权重,并以逐元素门控方式重标定输入特征。我们将 StripBlock 成功集成进 YOLO11,在检测头的多尺度特征层中引入条带式空间建模能力,从而增强模型对细长目标和复杂遥感场景的定位与识别效果。 阅读详情

SpringMVC异常处理(7)

接下来我到了对于异常处理部分的学习。对于异常处理而言,SpringMVC部分仍然有解决的办法,下面就进入异常处理的内容吧。

1、@ExceptionHandler

该注解就是将一个方法指定为异常处理方法。

其注解的方法使用上,注意以下:

  • 返回值可以是ModelAndView、String或者void
  • 方法名随意等
  • 方法参数可以是Exception及其子类对象、HttpServletRequest、HttpServletResponse

此时系统会将这些方法赋值。

2、实现步骤

2.1 自定义异常类

package com.kkb.exceptions;
public class TeamException extends Exception{
	public TeamException() {
	}
	public TeamException(String message) {
		super(message);
	}
}
package com.kkb.exceptions;
public class TeamIdException extends TeamException{
	public TeamIdException() {
	}
	public TeamIdException(String message) {
		super(message);
	}
}
package com.jpg.exceptions;
public class TeamNameException extends TeamException{
    public TeamNameException() {
    }
    public TeamNameException(String message) {
        super(message);
    }
}

首先创建以上三个异常类,后面两个异常类继承自上面第一个异常类。

2.2 编写控制器

package com.jpg.controller;

import com.jpg.exceptions.TeamIdException;
import com.jpg.exceptions.TeamNameException;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
@RequestMapping("ex")
public class ExController {

    @RequestMapping("test01/{id}/{name}")
    public ModelAndView test01(@PathVariable("id") Integer teamId,@PathVariable("name") String teamName) throws TeamIdException, TeamNameException {
        ModelAndView mv = new ModelAndView();
        if(teamId<=1000){
            throw new TeamIdException("因为team编号没有1000以下的,此时不合法!");
        }
        if("test".equals(teamName)){
            throw new TeamNameException("因为不能使用test,此时不合法!");
        }
        System.out.println(10/0);
        mv.setViewName("ok");
        return mv;
    }
    @ExceptionHandler(value = {TeamIdException.class,TeamNameException.class,Exception.class})
    public ModelAndView exHandler(Exception ex){
        ModelAndView mv=new ModelAndView();
        mv.addObject("msg",ex.getMessage());
        if(ex instanceof TeamIdException)
            mv.setViewName("idError");
        else if(ex instanceof TeamNameException)
            mv.setViewName("nameError");
        else
            mv.setViewName("error");
        return mv;

    }
}

在这里我们使用第一个方法来调动测试,并且会根据抛出的类,跟第二个方法里加载的异常类进行相比较,然后返回出相应的异常网页。

2.3 编写jsp代码

error.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>error</title>
</head>
<body>
    <h1>默认的错误方式,即————${msg}</h1>
</body>
</html>

idError.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>id error</title>
</head>
<body>
    <h1>teamID Error-----${msg}</h1>
</body>
</html>

nameError.jsp

<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
    <title>name error</title>
</head>
<body>
    <h1>teamName error</h1>
</body>
</html>

附加:关于代码调试出现500报错的问题

在这里插入图片描述

若出现如下的报错:

Message /idError.jsp (line: [14], column: [27]) #{...} is not allowed in template text
Description The server encountered an unexpected condition that prevented it from fulfilling the request.

请查看自己的JSP文件是不是使用了#{...}的符号,改成${...}

这是因为,${...}是jsp的一种标记语言,而#{...}是JSF的一种标记语言,在jsp页面中打印model attribute 必须用${...}

2.4 使用网页调试

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

此时调试内容正确无误。

3、后续的优化

我们在后续的异常编写时,一般将异常处理方法专门定义在一个类里面,作为全局的异常处理类。

这时候使用@ControllerAdvice,即控制器增强,是给控制器对象增强功能的。这里使用@ControllerAdvice修饰的类可以使用@ExceptionHandler。

当使用@RequestMapping 注解修饰的方法抛出异常时,会执行@ControllerAdvice 修饰的类中的异常 处理方法。 @ControllerAdvice 注解所在的类需要进行包扫描,否则无法创建对象,即如下:

<context:component-scan base-package="com.jpg.exceptions"/>
package com.jpg.exceptions;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.servlet.ModelAndView;
/**
* ClassName: GlobalExceptionHandler
* 自定义全局异常处理类
* @author xiaoaifu
* @version 1.0
*/
@ControllerAdvice
public class GlobalExceptionHandler {
	@ExceptionHandler(value = TeamIdException.class)
	public ModelAndView exHandler1(Exception ex){
		ModelAndView mv=new ModelAndView();
		mv.addObject("msg",ex.getMessage());
		mv.setViewName("idError");
		return mv;
	}
	@ExceptionHandler(value = TeamNameException.class)
	public ModelAndView exHandler2(Exception ex){
		ModelAndView mv=new ModelAndView();
		mv.addObject("msg",ex.getMessage());
		mv.setViewName("nameError");
		return mv;
	}
	@ExceptionHandler(value = TeamException.class)
	public ModelAndView exHandler4(Exception ex){
		ModelAndView mv=new ModelAndView();
		mv.addObject("msg",ex.getMessage());
		mv.setViewName("nameError");
		return mv;
	}
	@ExceptionHandler(value = Exception.class)
	public ModelAndView exHandler3(Exception ex){
		ModelAndView mv=new ModelAndView();
		mv.addObject("msg",ex.getMessage());
		mv.setViewName("error");
		return mv;
	}
}

此时编写应该跟上面是一样的效果。

总结

以上是我对于SpringMVC异常处理的一些总结和收获,希望大家能够收获到一些知识,并且多多访问我的其他文章内容,谢谢大家。

ADB 安装教程:如何在 Windows、 Linux 上安装 Android Debug Bridge 本文介绍了在Windows和Linux系统上安装ADB(Android调试桥)的方法。对于Windows系统:1)从官网下载ADB工具并解压;2)通过命令提示符验证安装;3)配置环境变量以实现全局使用;4)再次验证全局ADB功能。Linux系统可通过包管理器直接安装(如Ubuntu使用apt,Fedora使用dnf),安装后同样需验证版本信息确认成功。两种系统安装完成后,都能通过"adb version"命令检查安装状态。 阅读详情

相关推荐

YOLOv8n模型导出ONNX的避坑指南:解决版本差异,正确生成TensorRT/RKNN所需输出节点

本文详细介绍了YOLOv8n模型导出ONNX格式的实战避坑指南,涵盖版本差异处理、代码修改技巧及TensorRT/RKNN部署优化方案。针对不同推理框架需求,提供输出节点生成、动态轴处理和后处理划分等核心问题的解决方案,帮助开发者高效完成模型部署。

weixin_33247358的博客 357

学习springmvc跑程序出错

今天学mvc的时候跟着视频敲了一段代码,设置路径为classpath:springmvc.xml报错说文件不存在,把路径改成classpath:config/springmvc.xml还是报错,但文件是配置在classpath下的config目录中的啊 具体错误如下 HTTP Status 500 – Internal Server Error Type Exception Report Mess...

qq_24854507的博客 330

高效管理Node.js版本与pnpm安装全攻略

本文提供了一套高效管理Node.js版本与pnpm安装的完整攻略。针对开发中常见的版本冲突和磁盘空间问题,详细介绍了如何在Windows和Ubuntu系统上安装并配置pnpm,并重点讲解了如何利用其内置的`pnpm env`命令进行Node.js版本管理,实现一站式环境管理,提升开发效率。

weixin_28840591的博客 313

SpringMVC无法返回Json格式数据

先看报错细节 ype Exception Report Message Request processing failed; nested exception is java.lang.IllegalArgumentException: No converter found for return value of type: class java.util.ArrayList Descri...

iCopper_的博客 1143

DeepSeek + 番茄小说:AI辅助小说开发最全指南

DeepSeek与番茄小说合作推出AI辅助小说创作系统,通过DeepSeek的文本生成能力(包括情节构建、角色塑造等)结合番茄小说的市场数据,为作者提供从创意到发布的全流程支持。系统包含智能创意生成器、角色设计、章节自动生成等核心模块,采用数据驱动优化策略,支持128K长文本处理和多风格模仿。开发架构采用Python+FastAPI技术栈,提供分层审核机制确保质量。该系统可帮助作者突破创作瓶颈,提升效率,同时提供订阅制、内容分成等多元变现模式。需注意版权问题和原创性保证。

weixin_41445009的博客 1673

LTspice仿真实战:共模电感差模/共模插入损耗测试全流程(附WE 744821201参数)

本文以Würth Elektronik 744821201型号共模电感为例,详细介绍了在LTspice中搭建差模与共模插入损耗测试电路的全流程。通过从规格书提取关键参数、构建SPICE模型,到执行仿真并与官方数据对比,旨在帮助硬件工程师在PCB设计前期精准预测EMC性能,弥合器件选型与系统设计之间的鸿沟。

info6的博客 759

spring.MyBatisSystemException: ne

Request processing failed; nested exception is org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: DescriptionThe server encountered an unexpected condition that prevented it from fulfilling t.

377

MAX31856高精度热电偶测温系统实战:从寄存器配置到温度读取

本文详细介绍了MAX31856高精度热电偶测温系统的实战应用。从硬件连接避坑、核心寄存器配置(如CR0、CR1),到利用中断高效读取并解析温度数据,提供了完整的驱动框架和代码示例。该方案解决了传统热电偶信号微弱、非线性及冷端补偿难题,适用于工业测温等场景,帮助开发者快速实现稳定可靠的高精度温度测量。

coffee的博客 485

SpringMVC,服务器状态码500

头疼体验 部分有用的错误提示如下: Description The server encountered an unexpected condition that prevented it from fulfilling the request. Exception javax.servlet.ServletException: Servlet.init() for servlet [Spring...

a1398280098的博客 1863

几率大的网络安全面试题(含答案)

其他篇章:Java校招极大几率出的面试题(含答案)----汇总 本文面试题汇总: 防范常见的 Web 攻击 重要协议分布层 arp协议的工作原理 rip协议是什么?rip的工作原理 什么是RARP?工作原理 OSPF协议?OSPF的工作原理 TCP与UDP区别总结 什么是三次握手四次挥手? tcp为什么要三次握手? dns是什么?dns的工作原理 一次完整的HTTP请求过程 Cookies和ses...

睶 6万+

YOLO11有效改进专栏目录

YOLO11改进专栏导航

A1983Z的博客 3676

Java项目三

Java项目三的下半篇

qq_59336423的博客 238

Ultralytics YOLOv8 英伟达™ Jetson®处理器部署

英伟达™(NVIDIA®)Jetson 是一系列嵌入式计算板卡,旨在为边缘设备带来加速的 AI(人工智能)计算。这些小巧而功能强大的设备围绕英伟达™(NVIDIA®)的GPU架构打造,能够直接在设备上运行复杂的人工智能算法和深度学习模型,而无需依赖云计算资源。Jetson 板卡通常用于机器人、自动驾驶汽车、工业自动化和其他需要在本地以低延迟和高效率执行人工智能推理的应用中。此外,这些板卡基于 ARM64 架构,与传统 GPU 计算设备相比运行功耗更低。英伟达™(NVIDIA®)JetPack SDK。

机器人控制与仿真应用 3876

7. SpringMVC的异常处理

7. SpringMVC的异常处理 异常处理思路 1. Controller调用service,service调用dao,异常都是向上抛出的,最终有DispatcherServlet找异常处理器进行异常的处理。 SpringMVC的异常处理 1. 自定义异常类 package com.demos.exception; /** * 自定义异常类 * ...

zxkzhang的博客 218

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

第7章 SpringMVC异常处理

SpringMVC异常处理 前端代码: 后端代码: /** * 异常处理 */ @Controller @RequestMapping("/user") public class UserController { /** *异常处理 * @return */ @RequestMapping("/testException") ...

chpllp的博客 172

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

7.springMVC异常处理

七.异常处理 1.局部异常处理 在当前Controller中创建一个方法 该方法使用注解@ExceptionHandler进行标注 表示当前方法是一个局部异常处理的方法 用于处理在当前Controller中所有的Handler方法出现的异常 该注解可以传递参数,参数是一个Class类型 参数的值是当前方法处理的异常的类型,如果没有参数,默认Exception 局部异常的处理方法可以有多个 @Controller @RequestMapping("/exception") public class Exc

西瓜咬人啦 164

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

SpringMVC框架(7) —— 异常处理

项目结构 java controller InterceptorController.java(Java文件) interceptor TestInterceptor01.java(JavaBean文件) TestInterceptor02.java(JavaBean文件) TestInterceptor03.java(JavaBean文件) resources spring...

阿水的博客 406

【SpringMVC3.X 总结】7. 异常处理

一、异常处理思路 系统中异常包括两类: 预期异常 运行时异常RuntimeException 前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。 系统的dao、service、controller出现都通过throws Exception向上抛出,最后由springmvc前端控制器交由异常处理器进行异常处理,如下图:...

FullStackDeveloper0的博客 237

SpringMVC学习笔记【part7】异常处理

SpringMVC 学习笔记 Part7 1. SpringMVC的异常处理 首先先来回顾下 Java 中的异常。系统中异常包括两类:预期异常和运行时异常 RuntimeException,前者通过捕获异常从而获取异常信息,后者主要通过规范代码开发、测试通过手段减少运行时异常的发生。 Controller调用service,service调用dao,若期间发生异常,都是向上抛出的,最终 DispatcherServlet 会找异常处理器进行异常的处理。若没有异常处理器,最终会抛向浏览器,浏览器为我们打印

Parker_cpp的博客 304

【SSM】SpringMVC学习笔记7:前后端数据传输协议和异常处理

针对自己对项目划分的异常种类,自定义异常自定义的异常需要继承自已有的异常类型。需要为自定义异常提供构造器(根据需要)。自定义异常中自定义属性code,需要提供get方法和set方法。业务异常//自定义异常处理器,用于封装异常信息,对异常进行分类系统异常在异常处理类中对三种异常分别处理。其中resule返回的信息从异常对象中获取。//@ExceptionHandler用于设置当前处理器类对应的异常类型//记录日志//发送消息给运维//发送邮件给开发人员,ex对象发送给开发人员。

2301_76391858的博客 1155

SpringMvc(7)-10.15异常处理

3.异常处理 SpringMVC:HandlerExceptionResolver接口 该接口的每个实现类都是异常的一种处理方式 a. ExceptionHandlerExceptionResolver:主要提供了@ExceptionHandler注解,并通过该注解处理异常 //该方法可以捕获本类中抛出的ArithmeticException异常 @ExceptionHandler({ArithmeticException.class,ArrayIndexOutOfBoundsException.cla

xt_cloud的博客 178

springMVC入门--7.异常处理机制

springMVC的异常处理机制最常使用的是HandlerExceptionResolver定义一个单独的异常处理类,使用@ControllerAdvice注解标识 在xml中要有<mvc:annotation-driven />示例:@ControllerAdvice public class CommonExceptionHandler { private static Stri

qq_22222663的博客 226

高龄白菜JAVA学习第六十五天(SpringMVC (7)异常处理|注解配置SpringMVC)

1

mangosea的博客 148

SpringMVC(7)------ 异常处理

异常处理 异常处理器 异常分类管理 代码: import org.springframework.stereotype.Component; import org.springframework.web.servlet.HandlerExceptionResolver; import org.springframework.web.servlet.ModelAndView; import javax.servlet.http.HttpServletRequest; import javax.serv

учёба 455

handlerexceptionresolver ajax,Http请求的异常处理(草稿) (SEUG)

Dorado7应用中的请求大致可分为两类:普通请求和Ajax类请求。对于这两种请求的异常处理方法存在着相当大的差异,因此以下将分开讨论这两种场景。普通请求的异常处理普通请求通常指那些直接访问某个视图的请求,例如那些通过.d结尾的URI直接映射某个.view.xml的请求。除此之外也包括那些装载Dorado7的脚本库、CSS、以及通过/resources/*装载各种资源文件的请求。Dorado7通过...

weixin_35690047的博客 439

【SpringMVC从入门到实战教程】第七章 SpringMVC 异常处理

SpringMVC的异常处理机制 SpringMVC的异常处理:自带异常处理器、自定义异常处理器、注解式异常处理器

波哩个波的博客 294
上一篇: U1_操作系统引论
下一篇: SpringMVC拦截器(8)
Xiao艾扶
博客等级 码龄7年 187粉丝 93原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Xiao艾扶

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值