12.07.2015 Views

VisiBroker Edition

VisiBroker Edition

VisiBroker Edition

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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

系 统 违 例取 得 完 成 状 态系 统 违 例 有 一 个 完 成 状 态 来 说 明 掷 出 违 例 的 操 作 是 否 已 完 成 。 以 下 的 代 码 示 例 说 明CompletionStatus 的 CompletionStatus 枚 举 型 值 。 如 果 不 能 确 定 操 作 状 态 , 则返 回 COMPLETED_MAYBE。enum CompletionStatus {COMPLETED_YES = 0;COMPLETED_NO = 1;COMPLETED_MAYBE = 2;};C++: 您 可 以 使 用 这 些 SystemException 方 法 来 检 索 完 成 状 态 。CompletionStatus completed();取 得 和 设 置 minor code ( 次 要 代 码 )C++:您 可 以 使 用 这 些 SystemException 方 法 来 检 索 和 设 置 minor code。 Minor code 用于 提 供 关 于 错 误 类 型 的 更 详 尽 的 信 息 。ULong minor() const;void minor(ULong val);确 定 系 统 违 例 的 类 型C++:<strong>VisiBroker</strong> <strong>Edition</strong> 违 例 类 型 的 设 计 允 许 您 编 程 来 捕 捉 任 何 类 型 的 违 例 , 然 后 再通 过 使 用 _downcast() 方 法 确 定 它 的 类 型 。 静 态 方 法 _downcast() 接 受 到 任 何Exception 对 象 的 指 针 。 与 CORBA::Object 上 定 义 的 _downcast() 方 法 一 样 , 如 果指 针 是 SystemException 类 型 , 则 _downcast() 将 把 指 针 返 回 给 您 。 如 果 指 针 不 是SystemException 类 型 , _downcast() 将 返 回 一 个 NULL 指 针 。 请 参 阅 第 24 章 " 在IIOP 上 使 用 RMI" 查 看 详 情 。捕 捉 系 统 违 例C++:您 的 应 用 应 该 将 <strong>VisiBroker</strong> ORB 和 远 端 调 用 装 入 一 个 “try catch”( 尝 试 捕 捉 )程 序 块 中 。 以 下 的 代 码 示 例 说 明 帐 户 客 户 程 序 ( 参 见 第 4 章 " 使 用 <strong>VisiBroker</strong><strong>Edition</strong> 开 发 实 例 应 用 ") 如 何 在 C++ 和 Java 下 打 印 一 个 违 例 。#include "Bank_c.hh"int main(int argc, char* const* argv) {try {CORBA::ORB_var orb = CORBA::ORB_init(argc, argv);PortableServer::ObjectId_var managerId =PortableServer::string_to_ObjectId("BankManager");Bank::AccountManager_var manager =Bank::AccountManager::_bind("/bank_agent_poa", managerId);const char* name = argc > 1 ? argv[1] : "Jack B. Quick";Bank::Account_var account = manager->open(name);CORBA::Float balance = account->balance();处 理 违 例 5-3

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

Saved successfully!

Ooh no, something went wrong!