高手请教三层问题!特别急(100分)

F

fpsky

Unregistered / Unconfirmed
GUEST, unregistred user!
try
DCOMConnection1.Connected := true;
except
on e: EOleExceptiondo
begin
MessageBox(Handle, '连接服务器出错 '#13'请退出系统!', '提示信息', MB_OK + MB_ICONEXCLAMATION);
abort;
end;
end;
到底为什么,捕获不了错误?on e: EOleExceptiondo
都不执行,谢谢!

 
呵呵,不好意思,不会
 
DCOMConnection1.Connected := true;可能是一个异步过程,所有不能捕获错误
 
to:张无忌
3X,那有什么办法没有
 
你看DCOMConnection有那些事件可以响应
 
有连接前,登陆事件等等
 
EOleException是一个例外对象的大类,如果你使用 on ,就需要具体的例外发生。
你可以不使用 on ,改用例外发生后 GetLastError 获得确切的错误类型,然后
改进你的程序。
 
Sorry,俺不会。
 
如果出错就到了Delphi内部的错误处理了。
 
那你就用On e: Exception嘛
 
to::猛禽
谢谢,也不行
 
另外 DCOMConnection1.Connected ---> True 只是发起一个连接动作,是否成功,好象不归它管。
就是不成功也不是例外,不会生成例外对象。
 
你可以先捕捉错误类型。
在except部分写上showmessage(e.classname)(先不写on )
然后,根据错误类型再 on e:xxxx。
据我的经验,你遇到的错误有可能是EoleSysError 用
on E:EoleSysErrordo
试试。
 
不好意思,昨天我自己也在编程,没太用心解决你的问题。
现在告诉你怎么做:
 
1.在服务器断做一个空方法, 如procedure DummyMethod;
2.在每次连接后调用这个空方法
这样就可以捕捉到错误信息
 
DCom是M$的三脚猫, Bugs、难配置(svr)、不可移植...
回头是岸.(注:我是三层的铁杆迷)
 
先试用E:Execption看看是什么错误。
try
DCOMConnection.Connected := true;
except
ON E:EXCEPTIONdo
ShowMessage(E.Message);
end;
然后再试。
 
你不用捕获它的错误直接用
DCOMConnection.Connected := true;
给它出现什么错误,然后你将错误的内容贴出来!
 
在执行DCOMConnection1.Open()时,即使你不手工编写捕获错误的代码,程序同样也会抛出
错误信息的(我指的还不仅是在IDE调试状态下)。
我遇到了这样一种情况:调用DCOMConnection.Open()时,没有出现任何错误,即使采用
接口的CreateRemote()方法也不出现任何错误,但调用服务器器对象方法的时候就是没有
正确的结果。这种情况是在把COM+组件通过导出代理的形式分发到客户机上安装时出现的。
你会不会是类似的情况?
 
好像不能捕获
 
顶部