プロジェクト

全般

プロフィール

バグ #3703

RTObject_implクラスのget_service_profile関数で適当なサービスプロファイル名を入力してもInvalidParameterの例外が発生しない問題

n-miyamoto7年以上前に追加. 6年以上前に更新.

ステータス:
終了
優先度:
通常
担当者:
対象バージョン:
-
開始日:
2016/11/04
期日:
進捗率:

100%

予定工数:

説明

RTObject_implクラスのget_service_profile関数に適当なサービスプロファイル名を入力してもInvalidParameterの例外をスローしない問題を修正する。

おそらく以下の部分でgetServiceProviderProfile関数内がInvalidParameterの例外をスローしても、catch (SDOPackage::InvalidParameter &e)の部分で例外を受け取れていないことが原因

 try
 {
    prof = m_sdoservice.getServiceProviderProfile(id);
 }
 catch (SDOPackage::InvalidParameter &e)
 {
        RTC_ERROR(("InvalidParameter exception: name (%s) is not found", id));
        throw e;
  }

履歴

#1 n-miyamoto7年以上前に更新

  • ステータス新規 から 解決 に変更
  • 担当者n-miyamoto にセット
  • 進捗率0 から 100 に変更

SdoServiceAdminクラスのgetServiceProviderProfile内で例外が発生する部分を以下のように修正

throw new SDOPackage::InvalidParameter();
→
throw SDOPackage::InvalidParameter();

テストを実行した結果、特に問題は発生しませんでした。

・ポインタを throw するならポインタかポインタの参照でキャッチすべき
 オブジェクトを throw するならオブジェクトかその参照でキャッチすべき
・例外は throw に渡されたオブジェクトのコピーが catch 節に渡され、
 catch 節の } で解体される
・値で受けるより参照で受けたほうが(たいていの場合) RVO が働いて
 コピー回数が1回減るのでお得

#2 n-ando6年以上前に更新

  • ステータス解決 から 終了 に変更

他の形式にエクスポート: Atom PDF