From: Kazunori NISHI Date: 1999-11-19T17:05:04+09:00 Subject: [ruby-dev:8377] Re: Exception handling 西@九大です。 From: WATANABE Hirofumi > :>> (a) 後置rescue(rescue修飾子)の採用 > > あれ? 既に実装済みってことはまだ知られてないのかな? あ、本当だ!がーん、知りませんでした。。。 From: keiju@Rational.Com (石塚圭樹) > この例を見ていて気が付きましたが, !!/rescue の後の値(式)を利用したいんで > すね... はい、そうです。どうやら、重要な事を伝え損なっていた感じが。。。 > こういう使い方なら演算子のほうがよいでしょうね. 上記2つの例とも``!!''を > 使った方が見やすいと思います. ぐはっ!やっぱりそうですよね。僕もそう思ってました。(今日のコウモリ)。 で、やはり &&(and),||(or) と同じ感覚で、!!(rescue) の両方が欲しいです。 演算子の名前も、"&&", "||" と同じ用途(例えば代入)で利用される事を期待 されている事から似た形(同一記号が2つ)がよく、一番「例外」を想起させる 記号は "!" である事から、"!!" がよいです。 initial_class = ARGV.shift || 'Object' initial_class = eval(ARGV.shift) !! Object はい、どちらも違和感なく読めますね。。。(読める、って言ってよー!) > 現行のRubyの例外の使い方は, ホントのエラーの時ぐらいしか使っていませんが, > より例外ベースのプログラミングもしやすくなりますね. はい、それがまさに目指している、というか、興味がある事なんです。「例外 ベース」というのはいい名前ですね。一般的な用語なのでしょうか? if line = f.gets Kconv(line, $KCODE) else nil end でもいいけど、 Kconv(f.gets, $KCODE) !! nil というコーディングの仕方(考え方)もある。むしろ、そちらがより自然(本来 の人間の思考に添う)なのではないか?とまで思います。 「目的」を行う為に、「(それが成立する)条件」を考える作業は果して必須な のか?コストが高い上に、本来の目的に対する意識を弱める事さえあるのでは ないだろうか? で、これまでは「処理の委譲」的な役割が大きかった「例外処理」を、この考 えに積極的に利用できないだろうか。「プログラミングパラダイムの変換」ま では行かずとも、「コーディングパラダイム(?)の変換」ぐらいは言えるかも。 という絵を描いており、その為にも、演算子による表記法が必要なのです。 ------------------------------------------------------------------ 九州大学大学院システム情報科学研究科 情報工学専攻 博士後期課程三年 西 和則 ( e-mail: kazunori@swlab.csce.kyushu-u.ac.jp ) ------------------------------------------------------------------