`
zhanshi258
  • 浏览: 48086 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

spring项目中异常设计

 
阅读更多

我们用到spring4 来处理异常,每当项目发生异常时,它就会调用相应的方法。

 

spring异常处理类:

 

@Controller
@ControllerAdvice
public class ControllerExceptionHandler{
	
	private static final Log LOGGER = LogFactory.getLog(ControllerExceptionHandler.class);
	
	@ExceptionHandler(Throwable.class)  
    @ResponseBody  
    public ResponseEntity<Message> handleThrowable(Throwable ex) { 
		System.out.println("#############异常111111111##############");
		LOGGER.error("", ex);
		Message message = new Message();
		return new ResponseEntity<Message>(message, null, HttpStatus.OK);
    }  
		
	
	@ExceptionHandler(IllegalArgumentException.class)  
    @ResponseBody  
    public ResponseEntity<Message> handleIllegalArgumentException(IllegalArgumentException ex) { 
		System.out.println("#############异常2222222222##############");
		LOGGER.error("", ex);
		Message message = new Message();
		return new ResponseEntity<Message>(message, null, HttpStatus.OK);
    }
	
	@ExceptionHandler(BaseLogicException.class)  
    @ResponseBody  
    public ResponseEntity<Message> handleBaseLogicException(BaseLogicException ex) { 
		System.out.println("#############异常333333333333333333333333333333##############");
		LOGGER.error("", ex);
		Message message = new Message();
		return new ResponseEntity<Message>(message, null, HttpStatus.OK);
    }
}

 

 

注意里面的注解都不能少,而且使用springmvc扫描这个类。不要再使用spring重复扫描。

 

<context:component-scan base-package="com.qing.web.controller" use-default-filters="false">
		<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
		<context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice" />
	</context:component-scan>

 

 

其实异常处理就是这么简单,每次项目中出现异常时,就会跳到上面相应的方法中。

我们可以在上面的方法中集中处理,可以跳到某一页面。

 

我们应该注意到了第三个方法,会拦截BaseLogicException异常。 这个是我们自己定义的异常。

既然我们想自定义异常,那就要规范一点,我们是不是需要一个异常码,比如404,500. 我们是不是需要统一的异常显示信息,是不是需要考虑国际化。

那么接下来我们就看看怎么实现吧。

明天再写

 

 

分享到:
评论

相关推荐

    spring项目所需jar包

    本资源包含了一系列Spring Framework的核心jar包,以及与Spring项目相关的其他重要库,如Junit、Log4j和Commons-Logging。 1. Spring Framework核心组件: - `spring-core-5.0.1.RELEASE.jar`:这是Spring框架的...

    spring boot资料以及项目

    总之,这份压缩包中的Spring Boot资料和项目实例是学习和提升Spring Boot技术的全面资源。通过深入学习和实践,你不仅可以掌握Spring Boot的基础知识,还能了解到高级特性和最佳实践,为你的Java开发事业打下坚实...

    Spring MVC 项目包 ,整合的干净项目

    在使用这个Spring MVC 3.0.5项目时,开发者需要理解Spring MVC的核心概念,如模型-视图-控制器(MVC)设计模式、注解驱动的编程、处理器映射器和适配器、视图解析器以及异常处理机制。此外,还要熟悉Spring框架的...

    spring-boot示例项目

    在基于Spring Boot、Spring Cloud 分布微服务开发过程中,根据实际项目环境,需要选择、集成符合项目需求的各种组件和积累各种解决方案。基于这样的背景下,我开源了本示例项目,方便大家快速上手Spring Boot、...

    Spring Cloud alibaba项目搭建及配置详细步骤

    实际开发中,还需要考虑异常处理、熔断机制、负载均衡等高级特性,这些可以通过Spring Cloud Alibaba中的其他组件,如Sentinel、Seata等来实现。同时,为了提高项目的可维护性和扩展性,可以采用模块化设计,将不同...

    SPRING技术内幕:深入解析SPRING架构与设计原理.pdf 下载

    Spring框架是由Rod Johnson在2003年创建的一个开源项目,其目标是为了简化Java EE应用程序的开发。Spring框架主要由以下几个模块组成: 1. **Spring Core**:核心容器模块,包含了Spring框架的基本组成部分,如...

    适合新手入门的springcloud完整项目资源,附带sql和详细的开发文档,可直接导入运行。

    "springcloud_parent"这个文件名可能指的是项目的父级Maven模块,通常在大型项目中,会有一个父模块来统一管理子模块的依赖和版本,这样可以避免版本冲突并简化依赖管理。 3. **服务发现——Eureka** Eureka是...

    struts2 spring hibernate 整合项目 适合毕业设计

    在本项目中,Spring被用来管理对象的生命周期,通过DI将各个组件连接起来。AOP则用于事务管理,可以全局控制事务的开始、提交或回滚,确保数据的一致性。 3. **Hibernate ORM**:Hibernate是一个对象关系映射(ORM...

    mybatis-spring整合项目

    【正文】 《mybatis-spring整合项目》是GitHub上官方提供的一个示例...通过深入研究和实践《mybatis-spring整合项目》,开发者不仅可以熟练掌握MyBatis和Spring的集成技巧,还能提升在实际项目中运用这些技术的能力。

    spring mybatis 项目整合完整代码

    - 项目中通常会配置统一的全局异常处理器,捕获未处理的异常,并返回友好的错误信息。 - 日志记录是必要的,使用Log4j或Logback等工具记录系统运行状态,便于问题排查。 总结起来,"spring mybatis 项目整合完整...

    基于Spring Boot MySQL实现创业孵化器平台系统【优质毕业设计、课程设计项目】.zip

    项目中的数据库设计是关键部分。这通常包括创建数据表,定义主键、外键,以及设置索引等。例如,可能会有“用户”表、“项目”表、“孵化器”表等,它们之间可能存在多对一、一对多或多对多的关系。数据库设计的好坏...

    spring mvc 项目

    总结,"spring mvc 项目"是一个理想的起点,通过它你可以深入了解Spring MVC的MVC设计模式,MyBatis的简单易用性,以及Oracle数据库的强大功能。在这个过程中,不断提升你的Java Web开发技能,为今后的项目奠定坚实...

    基于Spring-plus spring springMVC的maven项目整合

    8. **异常处理和日志记录**:在项目中,使用AOP可以统一处理异常,提供友好的错误信息。同时,通过集成Log4j或Logback等日志框架,记录系统运行时的详细信息,有助于后期的调试和问题排查。 9. **单元测试**:为了...

    Spring/Struts2整合项目

    实际项目中可能需要考虑更多细节,如异常处理、拦截器配置、国际化支持、安全控制等。在开发过程中,可以参考给定的链接(http://blog.csdn.net/hsun924/article/details/16877437)获取更具体的指导。 整合Spring...

    Spring boot项目中异常拦截设计和处理详解

    在Spring Boot项目中,异常拦截设计和处理是一个关键部分,旨在确保系统稳定性和良好的用户体验。在项目的生命周期中,可能会遇到各种异常情况,如业务逻辑错误、系统故障或第三方服务问题。为了有效地应对这些问题...

    简单的spring mvc项目

    在 Spring MVC 项目中,配置文件通常包括两部分:Spring 配置(如 `applicationContext.xml`)和 Spring MVC 配置(如 `servlet-context.xml`)。这些文件定义了bean的实例化、依赖注入以及 Spring MVC 的特定设置,...

    Spring5.pdf

    关于Spring框架的实践应用,开发者可以在Spring的官方文档中找到详细的API文档、指南以及各种示例项目,以帮助开发人员更好地理解和使用Spring框架。官方的下载地址和GitHub地址也提供了从源代码到二进制构建的入口...

    Spring技术内幕 - 深入解析Spring架构与设计原理.rar

    它打破了传统程序设计中对象之间的依赖关系,使得对象的创建和管理权交由Spring容器负责。通过配置文件或注解,我们可以告诉Spring哪些对象需要被创建,以及这些对象之间如何相互依赖。这样做的好处在于提高了代码的...

    spring.net结合三层AOP异常日志记录功能

    通过查看和运行这个项目,可以更深入地理解Spring.NET如何在实际项目中实现AOP异常日志记录。 综上所述,Spring.NET结合三层架构的AOP异常日志记录功能,为.NET开发者提供了一种有效管理异常和提高系统稳定性的解决...

    Spring和SpringCloud视频

    Spring框架是Java开发中最广泛应用的轻量级框架之一,它简化了企业级应用的开发流程。SpringBoot则是Spring框架的延伸,旨在简化Spring应用程序的初始搭建以及开发过程,通过自动配置帮助开发者快速创建独立运行的、...

Global site tag (gtag.js) - Google Analytics