12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

SHOW MORE
SHOW LESS
  • No tags were found...

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

用 户 违 例Java:package Bank;public interface Account extends com.inprise.vbroker.CORBA.Object,Bank.AccountOperations, org.omg.CORBA.portable.IDLEntity {}package Bank;public interface AccountOperations {public float balance () throws Bank.AccountPackage.AccountFrozen;}package Bank.AccountPackage;public final class AccountFrozen extends org.omg.CORBA.UserException {public AccountFrozen () { . . . }public AccountFrozen (java.lang.String _reason) { . . . }public synchronized java.lang.String toString() { . . . }}C++:修 改 对 象 以 掷 出 违 例要 使 用 违 例 以 便 在 适 当 的 出 错 环 境 下 能 够 掷 出 违 例 , 必 须 修 改 AccountImpl 对 象 。CORBA::Float AccountImpl::balance(){if( _balance < 50 ) {raise Account::AccountFrozen();} else {return _balance;}修 改 对 象 实 现 以 便 掷 出 违 例 ( 在 Java 下 ):Java: public class AccountImpl extends Bank.AccountPOA {public AccountImpl(float balance) {_balance = balance;}public float balance() throws AccountFrozen {if (_balance < 50) {throws AccountFrozen();} else {return _balance;}private float _balance;}捕 捉 用 户 违 例当 对 象 实 现 掷 出 违 例 时 , <strong>VisiBroker</strong> ORB 负 责 将 违 例 反 映 给 您 的 客 户 端 程 序 。 检查 是 否 是 UserException 与 检 查 是 否 有 SystemException 类 似 。 要 修 改 帐 户 客 户 程序 以 捕 捉 AccountFrozen 违 例 , 对 代 码 作 以 下 修 改 。C++: ...try {// 初 始 化 ORB。CORBA::ORB_ptr orb = CORBA::ORB_init(argc, argv);// 限 制 到 帐 户 。Account_var account = Account::_bind();5-8 <strong>VisiBroker</strong> 开 发 者 指 南

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!