发帖    主题    评论    推荐    标签    作者    订阅    查搜    注册   登陆   关注
 
面向对象 设计模式 领域驱动设计 企业架构 框架 开发教程 微服务 CQRS 扩展性 并发编程 事件溯源 分布式 SOA
1 2 下一页 Go 2

我们应该"放任"控制台吗?

2005-07-04 11:51
赞助商链接

用CMP的时候,一个findByPrimaryKey()没有找到PK时,就会抛出一个finderException(),weblogic控制台一大堆Exception信息;当create(PK),pk重复时,又是duplicateKeyException(),控制台又像翻浪一样,一大堆Exception信息!

不知道大家在做EJB的时候是怎么处理的?

2005-07-04 12:08

另外一点:我记得哪里说过通过try..catch..结构控制流程是一种很不好的做法,而EJB中,特别是CMP中经常用到的如findByPrimaryKey(),create()这些方法,就不再是偶尔抛一个异常了:
比如:客户要插入一条记录,当这条记录的关键字重复时,create()方法,或者是create()调用的方法(CMP自动生成的内部方法),就会抛出duplicateKeyException,我就会利用这个异常,再抛一次,让表现层catch这个异常,通知它(或这个客户)这个关键字重复了!
我个人感觉这就是在使用try..catch...控制流程,这种做法不是不好吗?百思不得其解,请大家指点........

2005-07-04 13:01

可以关闭控制台输出。
或者使用catch这些Exception。

是否重复我是先查询后create,尽量避免duplicateKeyException。
findException是很难避免。不过这种抛出也是很少出现的,我不会在我的业务中使用这些Excetion。

findException一般可控的,因为ID主键一般是首先你从数据库查询出来给用户的,用户不会自己随便可以输入主键。

只是我的想法。

2005-07-04 17:17

to banq:
就拿用户登录的例子来说吧:
1. 当用户输入一个错误的用户名时,EJB facade里的判断用户名和密码的方法:
try{
local=home.findByPrimaryKey(username);//throw finderException
.....
}
catch(Exception ex){
throw new EJBException(ex);
}
2. 在表现层调用这个session bean的javaBean catch这个异常:
public boolean login(userName,password) throw Exception{
facade.login(userName,password);
}
3. login Action里面:
try{
userBean.login(userName,password);
}
catch(Exception ex){
errros.add("login",new ActionError("没有这个用户名");
return ...
}

就拿这段程序来说,应该怎么控制错误的用户信息,并返回给用户知道

2005-07-04 21:19

哦,忘记了我的做法和你区别,一般查询我都是使用DAO实现的,也就是SLSB+DAO+JDBC,也建议你这样,除非有事务要求,否则不使用CMP的查询语句,很耗费内存。

2Go 1 2 下一页

赞助商链接

赞助商链接

返回顶部

移动版 关于本站 使用帮助 联系反馈 最佳分辨率1366x768
OpenSource JIVEJDON Powered by JdonFramework Code © 2002-20 jdon.com