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

kurihara shinji shinji.kurihara @ aist.go.jp
2010年 8月 11日 (水) 13:33:14 JST


松坂様、ジェフ様

お世話になっております。
栗原です。

例外捕捉時のエラー出力に、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



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