操作
バグ #3703
完了RTObject_implクラスのget_service_profile関数で適当なサービスプロファイル名を入力してもInvalidParameterの例外が発生しない問題
開始日:
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; }
n-miyamoto さんが約8年前に更新
- ステータス を 新規 から 解決 に変更
- 担当者 を n-miyamoto にセット
- 進捗率 を 0 から 100 に変更
SdoServiceAdminクラスのgetServiceProviderProfile内で例外が発生する部分を以下のように修正
throw new SDOPackage::InvalidParameter(); → throw SDOPackage::InvalidParameter();
テストを実行した結果、特に問題は発生しませんでした。
・ポインタを throw するならポインタかポインタの参照でキャッチすべき オブジェクトを throw するならオブジェクトかその参照でキャッチすべき ・例外は throw に渡されたオブジェクトのコピーが catch 節に渡され、 catch 節の } で解体される ・値で受けるより参照で受けたほうが(たいていの場合) RVO が働いて コピー回数が1回減るのでお得
操作