[openrtm-users 01394] Re: use of wildcard try-except in RTObject.py and Manager.py

Yosuke Matsusaka yosuke.matsusaka @ aist.go.jp
2010年 8月 18日 (水) 16:11:24 JST


栗原さん

松坂です。

下記の件、遅くなりましたがありがとうございます。
かなり見やすくなったおかげで、デバッグがサクサクと進んでいます:)

もう1点リクエストのなのですが、Factory.pyの中のcreate()関数内の
try-except部分にも同様のコードを仕掛けておいていただけますで
しょうか?
#コンポーネントの__init__関数の実装間違いで、createComponentを
 呼び出すときに例外が発生する場合がよくあるので、、、。

お手数おかけしますがよろしくお願いします。

2010/8/11 kurihara shinji <shinji.kurihara @ aist.go.jp>:
> 松坂様、ジェフ様
>
> お世話になっております。
> 栗原です。
>
> 例外捕捉時のエラー出力に、traceback.format_exc()を使用するよう変更
> 致しました。
> # ジェフさん、有難うございました。
>
> リポジトリはこちらです。(リビジョン378)
> http://openrtp.jp/openrtm/svn/OpenRTM-aist-Python/branches/RELENG_1_0/OpenRTM-aist-Python
>
>
> 以上、宜しくお願い致します。
>
>
>
> On Fri, 06 Aug 2010 15:44:11 +0900
> Geoffrey Biggs <geoffrey.biggs @ aist.go.jp> wrote:
>
>> 栗原様
>>
>> ジェフです。
>>
>> 2.3の場合、traceback.format_exception(sys.exc_info())が使えます。でも、
>> thread safeではないので、sys.versionをチェックして2.4以上なら
>> traceback.format_exc()を使ったほうがいいと思います。
>>
>>
>> On 06/08/10 15:35, kurihara shinji wrote:
>> > 松坂様
>> >
>> > お世話になっております。
>> > 栗原です。
>> >
>> >> せめてエラーが発生したときに呼ばれた関数名や、エラーコードの中身を出すようにはできないでしょうか?
>> > はい、承知致しました。
>> > 現状のままですと、確かに、どこでエラーが発生したのかわかり辛いですね。
>> > 修正しましたら、ご連絡させて頂きます。
>> >
>> > ジェフ様
>> >
>> >> 以下の件で、DEBUGの時、traceback.format_exc()を使ってログに出したらどう
>> >> でしょうか。
>> > 有難うございます。
>> > トレースバックの取得には、traceback.format_exc()が便利なようですが、
>> > Python2.4で追加された機能ですので、検討させて頂きます。
>> > (Windows版に関しましては、Pythonの推奨バージョンを2.4以降と記載していますが、
>> >  Python2.3を使用している方もいらっしゃるかも知れませんので。。。)
>> >
>> >
>> > 以上、宜しくお願い致します。
>> >
>> >
>> >
>> > On Fri, 06 Aug 2010 14:52:58 +0900
>> > Geoffrey Biggs <geoffrey.biggs @ aist.go.jp> wrote:
>> >
>> >> 栗原様
>> >>
>> >> ジェフです。
>> >>
>> >> 以下の件で、DEBUGの時、traceback.format_exc()を使ってログに出したらどう
>> >> でしょうか。
>> >>
>> >>
>> >> On 06/08/10 14:31, Yosuke Matsusaka wrote:
>> >>> OpenRTM-aist開発者の皆様(栗原さん)
>> >>>
>> >>> 産総研の松坂です。
>> >>>
>> >>> Python版の実装に関して、下記の例外発生時のエラー表示に対応いただきありがとうございました。
>> >>> ただ、、、現状のエラー表示が簡素すぎるため、デバッグ時には結局すべて自分でトレースコードを仕掛ける
>> >>> ことになってしまっています。
>> >>>
>> >>> 現状で以下のようなエラーが出ると思いますが、
>> >>>
>> >>> 2010-08-06 14:18:50,874 rtobject ERROR <type 'exceptions.NameError'>
>> >>>
>> >>> せめてエラーが発生したときに呼ばれた関数名や、エラーコードの中身を出すようにはできないでしょうか?
>> >>>
>> >>> ご検討ください。よろしくお願いします。
>> >>>
>> >>> 2009/11/30 Yosuke Matsusaka <yosuke.matsusaka @ aist.go.jp>:
>> >>>> OpenRTM-aist開発者の皆様
>> >>>>
>> >>>> 産総研の松坂です。
>> >>>>
>> >>>> お忙しいところ、たびたびすいません。
>> >>>>
>> >>>> Python版の実装についてのリクエストなのですが、
>> >>>> RTObject.pyの関数(on_*すべて)
>> >>>> Manager.pyの関数(registerFactory, registerECFactoryなど)
>> >>>> に関して、
>> >>>>
>> >>>> try:
>> >>>>    ...
>> >>>> except:
>> >>>>    return ...
>> >>>>
>> >>>> となっている部分を
>> >>>>
>> >>>> try:
>> >>>>    ...
>> >>>> except:
>> >>>>    print sys.exc_info()[0]
>> >>>>    return ...
>> >>>>
>> >>>> などと変更できないでしょうか?
>> >>>>
>> >>>> except文をワイルドカード指定で使ってしまうと文法エラー等も捕獲されてしまいます。
>> >>>> ユーザスクリプトをtry-and-errorを繰り返して開発して行きたいのですが、現在の実装だと
>> >>>> 上記の各関数でエラー表示なしでreturnしてしまうため、デバッグ作業がなかなかうまく
>> >>>> 進みません。
>> >>>> 上のように直すことでエラー表示をつけてほしいのですが、検討いただけますでしょうか?
>> >>>>
>> >>>> --
>> >>>> Yosuke Matsusaka, Ph.D  <yosuke.matsusaka @ aist.go.jp>
>> >>>>  Interaction Modeling Group /
>> >>>>  National Institute of Advanced Industrial Science and Technology (AIST)
>> >>>>  Tel: 029-862-6726  Web: http://staff.aist.go.jp/yosuke.matsusaka/
>> >>>>
>> >>>
>> >>>
>> >>>
>> >>
>> >
>> >
>>
>
>
> --
> ----------
> 栗原 眞二 <shinji.kurihara @ aist.go.jp>
>
> 独立行政法人産業技術総合研究所
>  知能システム研究部門 統合知能研究グループ
>  〒305-8568
>  茨城県つくば市梅園1-1-1 中央第2
>
>  TEL: 029-861-5956
>
>



-- 
Yosuke Matsusaka, Ph.D  <yosuke.matsusaka @ aist.go.jp>
  Interaction Modeling Group /
  National Institute of Advanced Industrial Science and Technology (AIST)
  Tel: 029-862-6726  Web: http://staff.aist.go.jp/yosuke.matsusaka/



openrtm-users メーリングリストの案内