因为底层出错上面肯定需要知道,所以在这种情况下肯定要向上抛出异常。问题是在底层如何处理。
1:如果底层这样处理
catch(XXXException ex){
throw new YYYException(ex);
}
这样到达上层的时候只有异常消息,而发生异常时的调用堆栈信息没有了(被抛出YYYException时的调用堆栈代替)。我认为调用堆栈信息对于debug是很重要的,因此这样的做法我不会忍受。
2:如果需要包装再抛出,我会这样
catch(XXXException ex){
ex.printStackTrace();
throw new YYYException(ex);
}
这样有了足够的信息,但是一个异常从低下传上来,往往打印出一大堆东西。3:或者不包装,直接抛出去,缺点是上层的应用不适合处理底层异常。通常我不会使用第一种方法,第二种和第三种我会根据情况选用
1:如果底层这样处理
catch(XXXException ex){
throw new YYYException(ex);
}
这样到达上层的时候只有异常消息,而发生异常时的调用堆栈信息没有了(被抛出YYYException时的调用堆栈代替)。我认为调用堆栈信息对于debug是很重要的,因此这样的做法我不会忍受。
2:如果需要包装再抛出,我会这样
catch(XXXException ex){
ex.printStackTrace();
throw new YYYException(ex);
}
这样有了足够的信息,但是一个异常从低下传上来,往往打印出一大堆东西。3:或者不包装,直接抛出去,缺点是上层的应用不适合处理底层异常。通常我不会使用第一种方法,第二种和第三种我会根据情况选用
解决方案 »
- 求助--刷新界面保留当前状态
- (学习struts2标签)Expression parameters.formName is undefined
- 远程桌面出错,求解决办法
- 关于数据绑定的问题
- 一个关于后台输出HMTL到前台页面的问题?
- 如何在JSP中获得系统的字体?
- 怎么搭建一个简单的BS架构的JAVA+ORACLE开发框架
- JSP服务器那个性能最好??支持日访问30万IP以上的网站!
- 大家来帮帮这个想在圣诞夜找到BF的MM,别说我说给你们说的哦!!
- 如何让表单里的下拉菜单设成我指定的宽度?如何调整多文本编辑域的宽度,和高度?如何使超连接文字没有下划线?
- 数据类型转换的问题
- jbuilder8 怎么找不到 servlet 的类库?
也可以把他转换成其他异常,比如RuntimeException
尤其是一些比较小的错误比如输入错误之类抛出来的自己定义的Exception
e.g.我就定义了一个InputErrorException
如果是这种情况有没有这种办法,
就是仅仅指定部分的Exception转由errorpage处理.比如SQLException新学jsp,希望得到大家的建议!
//bowps.后天结贴
补充一句:应用级的异常还是要在页面上显示给用户的