java ssh 那一层应该捕获异常_讨论一下SSH中的异常处理

讨论一下SSH中的异常处理

在SSH架构中出现异常时

1、要进行捕获且展现友好的信息给用户

2、要记录出现的异常供维护人员回溯问题

想到的几个点

1、利用web应用的error-page可以处理

2、利用struts的global-exception好像也可以处理

3、hibernate是不是对异常进行了封装或者也有自己的处理机制

3、spring中aop的afterThrowing可以捕获并记录异常

4、捕获到的异常是不是最原始的异常信息,还是经过封装的?

5、aop处理异常对性能影响如何?如果架构中使用了缓存机制,是否会有影响?

6、是不是需要处理异常,抛出自定义的异常?

7、ajax方式,后台异常如何处理?

1.对一个需要提供稳定、高质量的WEB系统而言,

对整个WEB程序的入口、出口的异常处理都需要做封装。

2.Logic、DAO可以根据需要,向上层抛出相应的Exception,

而这些Exception都必须在Action截住,也就是封装起来,向View返回一个合适的信息。

3.发生异常之后,返回到View的信息,可以是给人看得HTML也可以是给JavaScript看的JSON,

所以,普通页面的异常,可以显示错误页面;Ajax发生的异常,可以返回一个包容错误信息的JSON,让Ajax显示出来。

4.很多异常处理是在设计阶段就可以预见的,不要用Spring的AOP拦截,这样会对系统性能操成恶性的影响。

可以做一个BaseAction,把共通的处理写在里面。

5.具体的,抛出、捕获什么样的异常信息,根据系统实际处理内容确定。

根据不同的异常,可以让接收方程序作相应的处理——不局限于错误处理。

1、利用web应用的error-page可以处理

个人感觉这个方式不好,很显然不好统一定制。

2、利用struts的global-exception好像也可以处理

还可以,简单的应用可以试试

3、hibernate是不是对异常进行了封装或者也有自己的处理机制

对你来说没影响,可以不管他,有封装,但是好像没处理机制

3、spring中aop的afterThrowing可以捕获并记录异常

推荐记录,记录后利用异常链继续向上抛runtime非必捕获异常

4、捕获到的异常是不是最原始的异常信息,还是经过封装的?

跟异常链有关,一般java新手写的程序95%断链,开源框架的异常可以追溯到原始的信息

5、aop处理异常对性能影响如何?如果架构中使用了缓存机制,是否会有影响?

异常的捕获确实有性能影响的,个人感觉影响不大,比较异常是偶然发生的。

你指的缓存不明白如何影响异常的捕获

6、是不是需要处理异常,抛出自定义的异常?

当一段代码抛异常的时候,你要看你能不能在catch块内修复程序,让程序继续走不会出问题,否则不建议catch

业务系统比较大的话可以自己模仿开源框架那样定义业务异常,和逻辑异常。方便逻辑判断例如使用instanceof

7、ajax方式,后台异常如何处理?

向上抛,或者在jsp中发现异常,然后throw出来,直到jsb报红叉为止,否则ajax判断的状态码永远是对的。 在有一个地方可以捕获异常,过滤器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值