[#8168] {literal}#[]= — EGUCHI Osamu <eguchi@...>

えぐち@エスアンドイーです。

16 messages 1999/11/01
[#8172] Re: {literal}#[]= — matz@... (Yukihiro Matsumoto) 1999/11/01

まつもと ゆきひろです

[#8176] Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...>

もりきゅうです。

35 messages 1999/11/01
[#8178] Re: Multiple self assignment — matz@... (Yukihiro Matsumoto) 1999/11/01

まつもと ゆきひろです

[#8212] Re: Multiple self assignment — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/02

もりきゅうです。

[#8213] Re: Multiple self assignment — matz@... (Yukihiro Matsumoto) 1999/11/03

まつもと ゆきひろです

[#8232] 例外を処理する 2 項演算子 — Kazunori NISHI <kazunori@...> 1999/11/05

西@九大です。

[#8233] Re: 例外を処理する 2 項演算子 — matz@... (Yukihiro Matsumoto) 1999/11/05

まつもと ゆきひろです

[#8236] Re: 例外を処理する 2 項演算子 — Kazuhiro Yoshida <moriq.kazuhiro@...> 1999/11/05

もりきゅうです。

[#8266] Re: 例外を処理する 2 項演算子 — EGUCHI Osamu <eguchi@...> 1999/11/07

えぐち@エスアンドイー です。

[#8269] Re: 例外を処理する 2 項演算子 — gotoken@... (GOTO Kentaro) 1999/11/07

In message "[ruby-dev:8266] Re: 例外を処理する 2 項演算子"

[#8271] Re: 例外を処理する 2 項演算子 — matz@... (Yukihiro Matsumoto) 1999/11/08

まつもと ゆきひろです

[#8274] Re: 例外を処理する 2 項演算子 — keiju@... (石塚圭樹) 1999/11/08

けいじゅ@日本ラショナルソフトウェアです.

[#8204] Re: [ruby-list:18281] Re: アクセス制御について — Shugo Maeda <shugo@...>

前田です。

12 messages 1999/11/02
[#8205] Re: [ruby-list:18281] Re: アクセス制御について — Shin-ichiro Hara <sinara@...> 1999/11/02

原です。

[#8315] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Kazunori NISHI <kazunori@...>

西@九大です。

37 messages 1999/11/15
[#8316] Re: [ruby-list:18601] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — matz@... (Yukihiro Matsumoto) 1999/11/15

まつもと ゆきひろです

[#8369] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Koji Arai <JCA02266@...> 1999/11/18

新井です。

[#8374] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — matz@... (Yukihiro Matsumoto) 1999/11/18

まつもと ゆきひろです

[#8384] Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{} — Koji Arai <JCA02266@...> 1999/11/19

新井です。

[#8405] 1.4.3 (Re: Re: [REQ] [].grep(pat){} ==> [].grep(pat).collect{}) — matz@... (Yukihiro Matsumoto) 1999/11/24

[#8319] Re: Exception handling — Jun Adachi <adachi@...>

安達@沖データと申します。

21 messages 1999/11/16
[#8350] Re: Exception handling — Kazunori NISHI <kazunori@...> 1999/11/17

西@九大です。

[#8446] [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...>

西@九大です。

37 messages 1999/11/29
[#8449] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/11/30

まつもと ゆきひろです

[#8463] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/11/30

西@九大です。

[#8474] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/12/01

まつもと ゆきひろです

[#8476] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/12/01

西@九大です。

[#8487] Re: [REQ] {enumerable, integer, range}.rand — matz@... (Yukihiro Matsumoto) 1999/12/02

まつもと ゆきひろです

[#8494] Re: [REQ] {enumerable, integer, range}.rand — Kazunori NISHI <kazunori@...> 1999/12/02

西@九大です。

[#8451] new Hash (Re: [ruby-list:19043]) — Wakou Aoyama <wakou@...>

青山です。

18 messages 1999/11/30

[ruby-dev:8331] Re: Exception handling

From: Kazuhiro Yoshida <moriq.kazuhiro@...>
Date: 1999-11-16 20:38:51 UTC
List: ruby-dev #8331
もりきゅうです。

Jun Adachi さんは書きました:
>CGIの件だとこんなので対応できるんじゃないかと思うんですが、やっぱり演
>算子の方がよいんでしょうか?>最初のメールの方(もりきゅうさん???)

呼ばれてしまいました。^^;
# 例外捕捉二項演算子については,最初に西さんが述べられてました。


>(1) ユーザが定義可能なエラーハンドラー辞書と標準クラスからの呼出し。
>  さらに贅沢を言うと、PostScriptの辞書みたいにスタッカブルになっている
>  と、以前の状態に簡単に戻れるのでうれしい。

具体的にどうすべきなのか,私も想像の域を出ませんが
ハンドラはひとつの解かも。
いわゆる inline callback を考えると,
-- uso.rb
# ext lib
class File
  PROCS = {}
  def File.handle(error, proc=nil)
    PROCS[error] = proc || lambda
  end
  def File.handy_open(path, mode)
    begin
      open path, mode
    rescue
      proc = PROCS[$!.type]
      if proc then proc.call else p $! end
    end
  end
end

# user
File.handle(Errno::ENOENT) {
  p '失敗しちゃった'
}

File.handy_open 'usopyon', 'r'
--
で open から例外が飛んでも拾われて '失敗しちゃった' となる。


>(2) 単独のrescue節で複数のエラーを処理できるように、現在捕まえているエ
>  ラーオブジェクトを仮引数で受け取りたい。

これは
  ruby-man-1.4-jp/syntax.html#raise
  >発生した例外は変数 $! に格納されます.
  >また例外が発生したソースコード上の位置は変数 $@ に格納されます. 

というわけで $! でいけますね。
# ruby-man-1.4-jp って Exception の階層が載ってないんだ..

# そうか! 例外が '!' な感じなのは $! で裏付けされてたんだな
# a @! b もしくは a !@ b でどうでしょ? (しつこい)

----
Kazuhiro Yoshida  moriq.kazuhiro@nifty.ne.jp

In This Thread