[#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:8341] Re: Exception handling

From: matz@... (Yukihiro Matsumoto)
Date: 1999-11-17 07:15:51 UTC
List: ruby-dev #8341
まつもと ゆきひろです

In message "[ruby-dev:8338] Re: Exception handling"
    on 99/11/17, Jun Adachi <adachi@tpegasus.lab.okidata.co.jp> writes:

|> これはPostScriptを知らないこともあってちょっとイメージが湧き
|> ませんでした。
|
|辞書自体はHashと同じです。
|辞書スタックも含めてクラスにしてみるとこんな感じでしょうか。

なる、辞書については理解できました。

|一時的なエラーハンドラーを設定する場合に、上記プログラムだと
|dict.restoreだけで戻るので、現状復帰が簡単という安直な話です。

うーん、まずいでしょうね。というのもRubyにはスレッドがあるの
で普通の方法ではdict.restoreのような状態を使うとまずいことに
なります。つまり、「現状復帰」というのは単一の制御の流れでは、
オブジェクトの状態の単純な変化で表現できますが、複数の制御の
流れでは、状態を使うと他のスレッドで予期できないタイミングで
挙動が変化するのがまずい可能性があります。

|まつもとさんが「簡単なだけ」というのを好まないことは了解しています。
|しかし、前のメールでも書いたように、「全部デフォルト」と「全部begin
|.. rescue .. endでエラー処理する」の中間程度の真面目さのプログラムを書
|きたい場合に、この方式は便利だろうと思っています。

安達さんの提案はただ単に「簡単なだけ」ではないと思います。ま
た、便利な局面もあると思います。しかし、Rubyの標準的な機能で
あるスレッドとの相性が悪いのでそのままでは採用できません。

もうちょっといろいろ考えると使えるアイディアが出て来るかもし
れません。

|>   begin
|>   rescue IOError(err)
|>   end
|
|これは、IOErrorクラスのエラーの場合にこのrescue節に捕まって、詳細はerr
|で参照できるオブジェクトを見ろという意味ですよね?

そういう意味です。ちょっときれいじゃないですよね、文法が。

  begin
  rescue Errno::ENOENT, Errno::EINVAL(err)
  end

じゃなんだか分からないし。

  rescue Errno::ENOENT, Errno::EINVAL => err

?? うーむ。

|>   begin
|>   rescue IOError
|>     Exception::info
|>   end
|
|こっちは、クラス定数で参照できるという意味でしょうか?

そういう意味です。

|#なんか、後者だとやっぱりグローバルな変数にアクセスするのと変わりない
|#気がして。

ま、結局はおんなじなんですけどね。

                                まつもと ゆきひろ /:|)

In This Thread