海野秀之(うんのひでゆき)の外部記憶
Twitter (twilog) / RSS / アンテナ / ぶくま
なんとなく、 [ruby-list:43003] Q:SQLite使用時に例外が<del>補足</del>捕捉できない? というスレッドを眺めていたら、
> # この仕様から考えて、例外クラスは通常 StandardError を継承するのが良いと思いますが…
そうなんですが、他の言語の経験に引っ張られてExceptionを直接使っちゃう人も時々いるんですよねぇ。
なんて話にでくわして、 得した気分。
何も指定しなかった場合の rescue 節がつかまえるのが StandardError だというのは、 Ruby らしい、面白い仕様ですね。 (「言語仕様とライブラリ仕様が密接であってはいけないという法はないんですよ > C++ 使い諸君」 って感じ。 *1 )
これ読んでなかったら、なんにも考えずに Exception を継承していた可能性大。
しかし、自分がつくった例外クラスに StandardError を継承させるのは、 ある種の勇気がいるな。(ライブラリ作成者は StandardError を継承させるべき、かな。)
*1 Ruby に出会って最初にこれと同じような面白さを感じたのが、変数名を大文字で始めると定数ってやつ。すごく意外だったけど、「ああ、なるほど」と嬉しかった。
あそこに出ていく勇気はないので、遠巻きに。 (明日までまって同様のタレコミがなかったら考えよう。 ただ、それは余計な心配だな(きっとだれかが同じ情報を出す))
http://njb.virtualave.net/nmain0221.html#nmain20061128174602
ライカー副長がポチョムキン時代にコピーが作成されてしまう憂き目にあってますね。↓
http://homepage2.nifty.com/starbase_kobe/tngeps/6thseason/tngeps150.html
ドラマは単なるラブコメになってしまっていて、不満でしたが。
うーんと、考えてみたら、「取り残され問題」と ライカーコピー事件はあんまり関係ないような気が。