2015年4月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    
無料ブログはココログ

« 画像を貼り付ける(6) - ListItem のずれない identifier | トップページ | やっぱり、コメントというものはそうそういただけるものではないですね。 »

2012年7月 6日 (金)

wxRuby での例外処理のワナ

前回 (画像を貼り付ける(6) - ListItem のずれない identifier) で、大きな問題には対処しましたが、あれでも特定の条件下ではエラーが出ます。

それで思い出したのですが、ここまで説明を忘れていた大事なテクニックとして、例外処理(エラー処理)があります。といっても raise() を使えばよいのですが、これではダメなのです。ダメだということは、どこかで読んでいたのですが、実際にコードを書いているとやっぱりやってしまいました。

何が問題かというと、raise() という method 名が ruby と wxRuby で衝突しているのです!!!

Wx::Window#raise() という method があるので、普段 ruby で記述しているように、関数的 method として、地の文でいきなり raise() とすると、例外処理ではなく、Wx::Window#raise() が呼び出されてしまいます。通常通り例外処理に繋げるには、レシーバを明示して、

   Kernel.raise()

としなければなりません。ここ、試験に出ます :-p

去年、wxRuby の勉強を始めて web を漁っていたころ、どこかのサイトで、wxRuby の今後の version では、Wx::Window#raise() の方の method 名を変えるとかどうとか書いてあるのを見たような記憶があるのですが、いずれにしても、wxRuby で書くときには、Kernel.raise() としておいたほうが安全なようです。

« 画像を貼り付ける(6) - ListItem のずれない identifier | トップページ | やっぱり、コメントというものはそうそういただけるものではないですね。 »

wxRuby」カテゴリの記事

コメント

コメントを書く

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1527616/46209446

この記事へのトラックバック一覧です: wxRuby での例外処理のワナ:

« 画像を貼り付ける(6) - ListItem のずれない identifier | トップページ | やっぱり、コメントというものはそうそういただけるものではないですね。 »