锁定老帖子 主题:关于异常的处理以及相关设计
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2006-12-25
不过相信开发过程序的人应该对这些异常操作是很厌烦,有什么办法可以避免这些操作呢? 什么时候抛出异常,什么应该在程序里抓住异常? 比如你对一个对象的操作 java 代码
欢迎各位高手谈谈异常体系上设计的心得, 异常设计的好可以减少很多if,witch等语句。 那个用户登陆的例子来说吧。 记得以前写过程式编程的时的代码如下: java 代码
采用异常处理时候 java 代码
这两种设计方式就很考究你对异常的理解。 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-12-25
NullPointerException, ArrayOutOfIndexException 跟 UserNotFindExecption 完全不是一种类型的异常, 前者大多是参数不正确导致, 后者是业务异常, 怎么能混为一谈
|
|
返回顶楼 | |
发表时间:2006-12-25
那么,在这个方法中
void login() throw Exception{ ......... throws new UserNotFindExecption() } 如果登陆成功,会如何返回呢? |
|
返回顶楼 | |
发表时间:2006-12-25
成功不返回,
只是出错的时候抛出异常,由以后的程序去处理 比如我写了Service的login 在Action的login中去处理Service抛出来的异常 然后在Action具体改怎么做。 |
|
返回顶楼 | |
发表时间:2006-12-25
Feiing 写道 NullPointerException, ArrayOutOfIndexException 跟 UserNotFindExecption 完全不是一种类型的异常, 前者大多是参数不正确导致, 后者是业务异常, 怎么能混为一谈
没别的意思,只是拿来做个例子,然后想看看高手们是怎么设计异常已经对异常的处理的 |
|
返回顶楼 | |
发表时间:2006-12-25
这个好早以前说得已经很细了吧
记得我就是被google到的那个帖子勾引过来的 |
|
返回顶楼 | |
发表时间:2006-12-25
好像我也读过,好像是关于怎么以样OO的。就在这个论坛里吧,查下
|
|
返回顶楼 | |
发表时间:2006-12-27
稍微了解下EJB对异常设计方面的要求和规范,基本上就全都明白了。
一般的,系统设计里面要分为两种异常:系统异常和应用异常。前者以RuntimeException的子类实现,后者以Exception的子类实现。 遇到系统级别的问题(你的应用里面处理不了,比如:意外的IOException、SQLExcetpion)直接包装成RuntimeException的子类并抛出。在EJB这一层一旦发现RuntimeException事务就会自动会滚。 另外的,你可能会遇到应用级别的非正常情况,可能需要提示给当前用户或上层API,(比如:用户登录时可能会出现:用户名密码错误、当前用户已经登录、当前用户积分不足不允许再次使用...等等情况),这个时候,你需要定义自己的应用异常,并抛出给上层程序(很可能是UI层,他们catch后,根据当时的上下文,形成一个字符串以提示用户)。在EJB这一层你抛出Exception,事务依然会被成功提交。 |
|
返回顶楼 | |
发表时间:2006-12-27
那么,在这个方法中
代码 1. void login() throw Exception{ 2. ......... 3. throws new UserNotFindExecption() 4. } 如果登陆成功,会如何返回呢? 其实,可以返回一个Session对象。里面描述了本次登录会话的数据(ID,权限,时间 等等)。 |
|
返回顶楼 | |
发表时间:2006-12-27
在java版块搜索一下"checked"......
|
|
返回顶楼 | |