1、写一个用户登录的程序,进行参数的验证,如果参数无效,是写一个checked exception(UserNameInvalidException)包装参数的有效性规则并将其抛出,
还是直接把参数的有效性规则包装在一个普通的类里发回客户端?
2、一个处理业务逻辑的方法,通常需要调用很多其他的方法(同时把参数传给这些方法),是不是这些方法实现的时候都需要进行参数的有效性验证,还是不管他,
任其可能抛出诸如NullPointerException或者IndexOutOfBoundsException这样的(unchecked exception)?
3、如果系统系统抛出了checked exception e,就在catch块中用new RuntimeException(e) 重新抛出 unchecked exception(这个只看懂了一半,请高手赐教另一半?)
文章链接:http://hi.baidu.com/melon12356/blog/item/4f47c023737347579922ed0a.html
还是直接把参数的有效性规则包装在一个普通的类里发回客户端?
2、一个处理业务逻辑的方法,通常需要调用很多其他的方法(同时把参数传给这些方法),是不是这些方法实现的时候都需要进行参数的有效性验证,还是不管他,
任其可能抛出诸如NullPointerException或者IndexOutOfBoundsException这样的(unchecked exception)?
3、如果系统系统抛出了checked exception e,就在catch块中用new RuntimeException(e) 重新抛出 unchecked exception(这个只看懂了一半,请高手赐教另一半?)
文章链接:http://hi.baidu.com/melon12356/blog/item/4f47c023737347579922ed0a.html
解决方案 »
- ss2h在整合时,它们各自的版本到底是怎么选择的呢,请大神们指点一下
- hibennate的org.springframework.dao.DataIntegrityViolationException Could not execute JDBC batch update; 怎么改啊
- struts2 注册成功自动跳转问题
- 在线求救tomcat跟IIS整合发生的问题。。
- 请问hibernate能否动态映射数据库表
- 【各种求】SQL 自动查询最近两天内创建或修改过的数据。
- 编写第一个Servlet报错
- 一个对于很多学习J2EE的人都很有帮助的问题,望各位DGDJ给小弟个解释(所有的分都送了)
- 做一个Hibernate小例子,出现如下问题~~~:*
- Linux下j2ee配置问题
- AJAX发送XML
- 网上计时,什么方案比较方便准确?
1.这个随便,楼主是不是在问,checked exception 与unchecked exception该如何选择?
2.我建议方法中不做验证,理由是调用端有时可以保证参数的绝对正确性,或是可以选择在调用前验证,也就是存在有时不必验证的情况,所以把这个参数验证工作甩给调用端
3.打个比方吧,如果楼主用过hibernate就会发现,那个该死的sql异常居然被hibernate包装成了unchecked exception,我觉得这是因为通常程序无法为sql异常作出有效的补救,往往只能告诉客户操作失败,或是做一些日志记录的操作,因此hibernate干脆把它变成了unchecked exception,让我们在需要时选择接住,而不是强制我们接住。于是,碰到某些无法解决的问题,就转成unchecked exception往上抛吧,无法作出处理的地方都不接住。
2。底层最好不管参数验证,默认所有参数都正确,否则一层层调下来不累死,而且也不能保证所有异常都被捕获,是什么异常就抛出什么异常,这样调用者好跟踪,除非你能保证任何异常都有对应的ErrCode和详细的ErrMessage能让调用者明白。
3。不用new,是什么就抛什么。对于1楼的3,个人觉得是hib的蠢。我sql写错了,你不告诉我sql哪里错了(一般数据库都会告诉我那行错了,甚至哪个位置错了),而是告诉我unchecked exception,我找还得费半天功夫,那不是磨人?就像我调用某个工具包,然后它catch到任何异常,都throw new Exception("错误,自己找!");,哪个人给你这样个工具包,你不骂娘?以上都是个人意见,楼主看着办。