高手请进,如何抓住com+抛出的错误? 清看 http://expert.csdn.net/Expert/topic/1923/1923077.xml?temp=.4006769 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SOrder:begin …… try upstk.method1(orderID,updatestock_s.UPDATE_OUTSTOCK); except on e:eoleexception do logtofile(e.message); raise; // 在这里重新抛出异常, 客户端能够捕获 end;end;IErrorInfo 等处理错误的接口已经被封装到 Delphi 的 safecall 异常处理中了,不用你自己实现。 跟 http://expert.csdn.net/Expert/topic/1926/1926924.xml?temp=.5555689 中的内容DataModule 事务支持是设到 require a transaction 以上吧, 还是 support transaction 然后动态起动了事务?事怪之处就在这了, 在 transaction 中的异常(用SetAbort结束后)被调用者得到就是"灾难性错误", 重新理解了 SetAbort 和 SetComplete 后, 觉得这两句是说调用后对像释放, ?函数结束?, DisableCommit 和 EnableCommit 是说事务失败, ?函数还要操作?, 对像不释放, 总之很含糊, 还在理解ing & 试验ing那句 SetAbort 和 SetComplete 用 DisableCommit 和 EnableCommit 代替就可以把异常回传可能也会有问题, 主要问题就是对像有没有被释放了? 事务Context会不会自动释放其中对像(好像是会)目前我的理解是: 在一个事务体中的所有的对像释放都应由事务决定, 因为在事务没决定前事务中对像是要有状态的, 这里记录了事务中的改动过程 连事务中的异常都有这么些学问?晕ing To comanche(太可怕):我怎么没遇到你说的问题呢?我试了一下,事务支持设到 require a transaction 以上, 或者 support transaction 然后动态起动了事务,都不会出现你所说的情况。只要把 raise 放在 SetAbort 之后就行! 我在触发器里抛出个异常.但我的客户端只显示 ole error 80040e14 谁来说说这么回事?调用顺序: client->更新对象->业务组件->数据库调试时在业务组件能捉到.在更新对象捉不到.业务组件那层抛出异常在客户端是可以收到.为什么在数据库发出就不行呢? 是的, 在客户机就得到 灾难性失败 or 服务器发生异常在事务对像(更新)中用 EnableCommit 和 DisableCommit 代替 SetComplete 和 SetAbort 会正确, 对像是否会释放正在关心中 我只有这些分了,简单问题。 熟悉CookieManager组件的帮个忙 求好的查找字符串算法,达到chm搜索速度的一半就行了 Application和Screen这两个对象是何时创建的 我是一个新手,多谢大家指教 在Delphi中如何创建数据库! 如何通过IP地址取得局域网里其他机器网卡的MAC地址? 紧急求助 动态拷贝不同数据库的表格? F1book6的两个问题! 请问常量vk_tab在哪个单元中定义? 如何做成象qq一样的分栏?
……
try
upstk.method1(orderID,updatestock_s.UPDATE_OUTSTOCK);
except
on e:eoleexception do logtofile(e.message);
raise; // 在这里重新抛出异常, 客户端能够捕获
end;
end;IErrorInfo 等处理错误的接口已经被封装到 Delphi 的 safecall 异常处理中了,不用你自己实现。
但我的客户端只显示 ole error 80040e14
谁来说说这么回事?调用顺序:
client->更新对象->业务组件->数据库调试时在业务组件能捉到.在更新对象捉不到.
业务组件那层抛出异常在客户端是可以收到.
为什么在数据库发出就不行呢?