`
zhanshi258
  • 浏览: 47345 次
  • 性别: 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. 我们是不是需要统一的异常显示信息,是不是需要考虑国际化。

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

明天再写

 

 

分享到:
评论

相关推荐

    springcloud项目网约车项目

    Spring Cloud组件 模块 项目名 注册中心 配置中心 云配置服务器 网关 云祖 熔断监控 云-hystrix-仪表板 健康检查 云管理员 基线追踪 cloud-zipkin-ui 基础常见 所有服务都引用的一个二方库。 模块 项目名 通用,工具...

    spring-boot示例项目

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

    Spring MVC+MyBatis开发从入门到项目实战

    第4篇是Spring MVC与MyBatis的项目整合实战,通过对水果网络销售平台的需求分析、功能设计、数据库设计以及模块详细编码实现,让读者了解整合项目开发的整体流程。 《Spring MVC+MyBatis开发从入门到项目实战》对...

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

    主要介给大家绍了关于Spring boot项目中异常拦截设计和处理的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用spring boot具有一定的参考学习价值,需要的朋友们下面随着小编来一起看看吧

    Spring+3.x企业应用开发实战光盘源码(全)

     第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。  第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及...

    Spring攻略(第二版 中文高清版).part1

    12.5 从项目中删除Spring Roo 500 12.5.1 问题 500 12.5.2 解决方案 500 12.5.3 工作原理 501 12.6 小结 502 第13章 Spring测试 503 13.1 用JUnit and TestNG创建测试 504 13.1.1 问题 504 13.1.2...

    毕业设计基于Spring Boot的汽车4S店信息管理系统项目源码+数据库.zip

    毕业设计基于Spring Boot的汽车4S店信息管理系统项目源 功能 用户管理:用户是系统操作者,该功能主要完成系统用户配置。 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。 岗位管理:...

    Spring攻略(第二版 中文高清版).part2

    12.5 从项目中删除Spring Roo 500 12.5.1 问题 500 12.5.2 解决方案 500 12.5.3 工作原理 501 12.6 小结 502 第13章 Spring测试 503 13.1 用JUnit and TestNG创建测试 504 13.1.1 问题 504 13.1.2...

    Spring.3.x企业应用开发实战(完整版).part2

    此外,本书重点突出了“实战性”的主题,力求使全书“从实际项目中来,到实际项目中去”。 目录 第1篇 概述 第1章 Spring概述 1.1 认识Spring 1.2 关于SpringSource 1.3 Spring带给我们什么 1.4 Spring体系结构 1.5 ...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (1)

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (3)

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    基于SpringBoot+SpringSecurity的RBAC管理系统,适合新手练习,做毕业设计,课程设计

    系统日志:记录用户操作日志与异常日志 SQL监控:采用druid 监控数据库访问性能 接口管理:方便统一查看管理接口 部门管理:配置系统用户所属部门组织 岗位管理:配置系统用户所属担任职务 字典管理:配置维护系统中...

    基于spring boot + element-ui的后台管理系统源码+项目说明.zip

    3、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 4、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。 基于...

    spring security 参考手册中文版

    12.2.3使用RequestPostProcessor在Spring MVC测试中以用户身份运行 106 作为用户在Spring MVC测试中使用注释运行 108 12.2.4测试HTTP基本认证 109 12.3 SecurityMockMvcRequestBuilders 109 12.3.1测试基于表单的...

    基于SpringBoot+SpringSecurity的RBAC管理系统源码+数据库+项目说明.zip

    基于SpringBoot+SpringSecurity的RBAC管理系统源码+数据库+项目说明.zip 这是一款基于SpringBoot+SpringSecurity的RBAC权限管理系统。原本只想着做成基于SpringSecurity的权限管理系统,但随着功能的增加感觉有些刹...

    搞定J2EE:STRUTS+SPRING+HIBERNATE整合详解与典型案例 (2)

    6.3.6 在代码中使用Log4j 6.4 改进Log4j 6.5 小结 第七章 Ant使用指南 7.1 Ant介绍 7.1.1 Ant简介 7.1.2 为什么要使用Ant 7.2 建立Ant的开发环境 7.2.1 下载Ant 7.2.2 配置Ant 7.3 Ant的使用方法 7.3.1 Ant能完成的...

    Spring Boot与Netty:构建高性能的网络应用

    我们将首先了解Netty的原理和优势,然后介绍如何在Spring Boot项目中集成Netty,包括详细的使用流程和步骤,以及带有注释的代码示例。通过本文,读者将能够掌握Netty在Spring Boot中的实际应用。 Netty 的核心特点 ...

    springCloud.rar(私聊博主要密码)

    + springBoot + springCloud + 日志组件logback-spring + 多配置 + 多数据源...+ 传参注解式校验 + session练习 + 公用日志设计封装 + db乐观锁设计 + 优雅启停 + 配置文件信息加密 + AES加解密 + spring 事件监听设计

    陈开雄 Spring+3.x企业应用开发实战光盘源码.zip

     第12章:讲解了如何在Spring中集成Hibernate、myBatis等数据访问框架,同时,读者还将学习到ORM框架的混用和DAO层设计的知识。  第13章:本章重点对在Spring中如何使用Quartz进行任务调度进行了讲解,同时还涉及...

    Spring3.x企业应用开发实战(完整版) part1

    此外,本书重点突出了“实战性”的主题,力求使全书“从实际项目中来,到实际项目中去”。 目录 第1篇 概述 第1章 Spring概述 1.1 认识Spring 1.2 关于SpringSource 1.3 Spring带给我们什么 1.4 Spring体系结构 1.5 ...

Global site tag (gtag.js) - Google Analytics