关于多层的异常处理问题(100分)

  • 主题发起人 主题发起人 wjh_wy
  • 开始时间 开始时间
W

wjh_wy

Unregistered / Unconfirmed
GUEST, unregistred user!
有哪些大侠在开发多层数据库系统,能否传受一下你们对多层异常处理的一些技术。
给一些实例也可以呀。
wjh_wy@163.com
 
大家交流一下吗,不要太吝啬了
 
可惜我用的是EJB,异常通常是用EJB抛出异常,然后由EJB容器处理异常
 
1: Application Server 端
1-1: 注意使用 try except 语句
1-2: 注意资源的释放
1-3: 事务的同步处理
1-4: 长事务的支持与侦听
1-3: 你可以把你在AppServer 端的执行函数 raise 的错误信息回传回客户端
 
用CB举个例子(Delphi的没研究过):
如果这样,异常就会被屏蔽
try{
...
}catch(Exception &E){
return S_FALSE;
//把异常屏蔽了
}
便如果这样,就会把异常再抛给调用者
try{
...
}catch(Exception &E){
return Error(WideString(E.Message), IID_IMyAppServer);
}
 
客戶端:
procedure Twz_c.DcDataSetReconcileError(DataSet: TCustomClientDataSet;
E: EReconcileError;
UpdateKind: TUpdateKind;
var Action: TReconcileAction);
begin
HandleReconcileError(dataset,updatekind,e);
end;
中間層:
try
except
end;
 
大多数情况可用HandleReconcileError(dataset,updatekind,e);,
如需调中间层方法的,可从中间层raise。
 
你千万不要把业务放在中间层,因为业务最容易出错,会导致服务器频繁死机!
 
多人接受答案了。
 
后退
顶部