在Spring基础上实现自己的异常处理框架


该异常处理框架满足的要求:

完整的异常组织结构

异常的统一处理

可配置,受管式,方便使用

完整的异常组织结构:

用户可以方便的定义自己的异常,但所有UncheckedException需要继承BaseAppRuntimeException,所有的checked Exception可以继承BaseAppException,或者需要抛出且不需要check时用WrapperredAppException封装后抛出

合理地使用checked异常

Exception有唯一的error code,这样用户报告异常后,可以根据异常号找到相应Exception,把exception直接显示给用户也没有太大的意义,如何纪录exception那就是下文讲到的ExceptionHandler的职责了。

如果是第三方包括jdk中的异常,需要封装成BaseAppException或者BaseAppRuntimeException后抛出

时间: 2024-10-20 08:17:19

在Spring基础上实现自己的异常处理框架的相关文章

有没有办法在不改变web程序源代码的基础上加入一个自己的过滤器?

问题描述 有没有办法在不改变web程序源代码的基础上加入一个自己的过滤器?大致需求是这样的,比如其他厂商做了个WEB程序,我想让这个WEB程序运行的时候,比如用户登录的时候能被我的过滤器给审计到.原来想通过改写它的web.xml,然后加上个自己写的过滤器.但是觉得这样不太好,有没有办法不改变它的web.xml来做到呢?如果可以请说明大致的思路:采用什么原理?大致要做的东西?我的邮箱lifeneedyou@163.com,MSN也是这 问题补充: 有没有办法在不改变web程序源代码的基础上加入一个

Spring基础知识

Spring基础知识 利用spring完成松耦合 接口 public interface IOutputGenerator { public void generateOutput(); } 实现类 csv输出 public class CsvOutputGenerator implements IOutputGenerator { public void generateOutput(){ System.out.println("Csv Output Generator"); } }

Kinect for Windows SDK开发入门(六)骨骼追踪基础 上

Kinect产生的景深数据作用有限,要利用Kinect创建真正意义上交互,有趣和难忘的应用,还需要除了深度数据之外的其他数据.这就是骨骼追踪技术的初衷,骨骼追踪技术通过处理景深数据来建立人体各个关节的坐标,骨骼追踪能够确定人体的各个部分,如那部分是手,头部,以及身体.骨骼追踪产生X,Y,Z数据来确定这些骨骼点.在上文中,我们讨论了景深图像处理的一些技术.骨骼追踪系统采用的景深图像处理技术使用更复杂的算法如矩阵变换,机器学习及其他方式来确定骨骼点的坐标. 本文首先用一个例子展示骨骼追踪系统涉及的主

浅谈.NET下的多线程和并行计算(八)Winform中多线程编程基础 上

首先我们创建一个Winform的应用程序,在上面添加一个多行文本框和一个按钮控件,按钮的事件如下 : Thread.Sleep(1000); StringBuilder sb = new StringBuilder(); for (int i = 0; i < 10000; i++) sb.Append("test"); string s = sb.ToString(); textBox1.Text = s; 首先我们可以把这个操作理解为一个非常耗时的操作,它至少占用1秒的时间.

浅谈.NET下的多线程和并行计算(五)线程池基础 上

池(Pool)是一个很常见的提高性能的方式.比如线程池连接池等,之所以有这些池是因为线程和数 据库连接的创建和关闭是一种比较昂贵的行为.对于这种昂贵的资源我们往往会考虑在一个池容器中放置 一些资源,在用的时候去拿,在不够的时候添点,在用完就归还,这样就可以避免不断的创建资源和销毁 资源. 如果您做过相关实验的话可能会觉得不以为然,似乎开1000个线程也用不了几百毫秒.我们要这么想 ,对于一个高并发的环境来说,每一秒假设有100个请求,每个请求需要使用(开和关)10个线程,也就 是一秒需要处理10

怎样在不使用框架的基础上开发一个 Javascript 组件

本文讲的是怎样在不使用框架的基础上开发一个 Javascript 组件, 许多开发者(包括我)犯的一个错误是当遇到问题时他们总是自上而下地考虑问题.他们想问题的时候,总是从考虑框架(Framework),插件(Plugin),预处理器(Pre-processors),后处理器(Post-processors),面向对象模式(objected-oriented patterns)等等这些方面出发,他们也可能会从他们以前看过的一篇文章来考虑.而这时如果有一个生成器(Generator)的话,他们当然

语音识别工具sphinx4源代码 如何在myeclipse中部署运行 在此基础上进行二次开发

问题描述 语音识别工具sphinx4源代码 如何在myeclipse中部署运行 在此基础上进行二次开发 如何能在源代码上进行二次开发,源代码如何部署在myeclipse中,我想做音频关键词检索方面的,有没有大神给点意见

状态栏-Android4.2源码基础上实现PhoneStatusBar透明

问题描述 Android4.2源码基础上实现PhoneStatusBar透明 最近需要在Android4.2系统源码的基础上对SystemUI进行定制, 不过在实现PhoneStatusBar的透明化处理这个问题上过不去,希望做过类似功能的前辈能够指个方向. 简单点描述就是要求PhoneStatusBar: 1.进入KeyGuard时半透明: 2.Launcher时透明: 3.打开Activity时不透明. 还请哪位前辈能够指点一下,先谢了

new-link关于课程表的问题要求每天都有自修课,请问在如下代码的基础上怎么修改?

问题描述 link关于课程表的问题要求每天都有自修课,请问在如下代码的基础上怎么修改? using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Text.RegularExpressions;using System.Threading.Tasks; namespace ConsoleApplication1{ class Program { static voi