バグ #3703
RTObject_implクラスのget_service_profile関数で適当なサービスプロファイル名を入力してもInvalidParameterの例外が発生しない問題
Start date:
11/04/2016
Due date:
% Done:
100%
Estimated time:
Description
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; }
History
#1 Updated by n-miyamoto about 4 years ago
- Status changed from 新規 to 解決
- Assignee set to n-miyamoto
- % Done changed from 0 to 100
SdoServiceAdminクラスのgetServiceProviderProfile内で例外が発生する部分を以下のように修正
throw new SDOPackage::InvalidParameter(); → throw SDOPackage::InvalidParameter();
テストを実行した結果、特に問題は発生しませんでした。
・ポインタを throw するならポインタかポインタの参照でキャッチすべき オブジェクトを throw するならオブジェクトかその参照でキャッチすべき ・例外は throw に渡されたオブジェクトのコピーが catch 節に渡され、 catch 節の } で解体される ・値で受けるより参照で受けたほうが(たいていの場合) RVO が働いて コピー回数が1回減るのでお得
#2 Updated by n-ando over 3 years ago
- Status changed from 解決 to 終了