[#21157] あったらうれしいメソッド to_n, to_n!, to_s! — ogino@...

荻野です。あったらうれしいメソッドということで書いてみます。

16 messages 2000/03/03

[#21159] メソッドの入り口 — ogino@...

荻野です。もうひとつご指導ください。

93 messages 2000/03/03
[#21170] Re: メソッドの入り口 — Shin-ichiro Hara <sinara@...> 2000/03/03

原です。

[#21243] Re: メソッドの入り口 — keiju@... (石塚圭樹) 2000/03/07

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

[#21247] Re: メソッドの入り口 — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/07

[#21267] 引数コピーとオブジェクト指向 (Re: メソッドの入り口) — Hideto ISHIBASHI <s34204@...> 2000/03/08

石橋秀仁です。

[#21272] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — 中村暁史 Nakamura Akifumi <BXQ04723@...> 2000/03/08

[#21276] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — nobu.nakada@... 2000/03/09

なかだです。

[#21279] Re: 引数コピーとオブジェクト指向 (Re: メソッドの入り口 ) — ogino@... 2000/03/09

oop未満の世界観の荻野です。

[#21282] Re: 引数コピーとオブジェクト指向 — Tomoyuki Kosimizu <greentea@...2.so-net.ne.jp> 2000/03/09

越水です。

[#21285] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21365] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21293] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/10

松尾です。

[#21297] Re: 引数コピーとオブジェクト指向 — ogino@... 2000/03/10

荻野です。

[#21302] Re: 引数コピーとオブジェクト指向 — 土岐 仁謙 <toki@...> 2000/03/10

土岐です。

[#21371] Re: 引数コピーとオブジェクト指向 — Matsuo Hisanori <hisanori@...> 2000/03/13

松尾です。

[#21374] Re: 引数コピーとオブジェクト指向 — TADA Tadashi <sho@...> 2000/03/13

ただただしです。

[#21280] raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp>

24 messages 2000/03/09
[#21283] Re: raise non-Exception object — nobu.nakada@... 2000/03/09

なかだです。

[#21315] Re: raise non-Exception object — Kenichi Komiya <kom@...3.rim.or.jp> 2000/03/11

[#21342] Re: raise non-Exception object — nobu.nakada@... 2000/03/12

なかだです。

[#21384] ruby 1.4.4 — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

35 messages 2000/03/13

[#21442] 配列内のソート — Takayuki Tanaka <tanaka@...>

こんにちは Tanです。

16 messages 2000/03/15

[#21583] ruby for Web — TAKAHASHI Masayoshi <maki@...>

高橋征義です。

27 messages 2000/03/22
[#21584] Re: ruby for Web — "NAKAMURA, Hiroshi" <nakahiro@...> 2000/03/22

なひです.

[#21649] net-1.1.10 — TAKAHASHI Masayoshi <maki@...>

高橋征義です。net/http 使いたおし中。

17 messages 2000/03/27

[#21669] new version of mod_ruby & eRuby — Shugo Maeda <shugo@...>

前田です。

14 messages 2000/03/28

[ruby-list:21280] raise non-Exception object

From: Kenichi Komiya <kom@...3.rim.or.jp>
Date: 2000-03-09 15:38:09 UTC
List: ruby-list #21280
始めまして 小宮と申します。

最近ちょこちょこRubyでスクリプト書きはじめた者です。よろしくお願いします。

例外についていろいろ試しているうちに、リファレンスマニュアルに書かれてい
ない動作にでくわしたのですが、以下のような理解で正しいでしょうか?

== ruby 1.4.2 (1999-09-18) [i686-linux] で実験 ==

class Foo
end

def rescue_test
  begin
    raise Foo.new
  rescue Exception
    p $!     
  end
end

rescue_test
# 出力 : #<NameError:undefined method `exception' for #<Foo:0x40129c10>>

# exceptionがないと怒られてるので定義して再挑戦
class Foo
  def exception 
    nil
  end
end

rescue_test
# 出力 : RuntimeError

class Foo
  def exception
    1
  end
end

rescue_test
# 出力 : #<TypeError:exception object expected>

# Exception(またはそのサブクラス)を要求してるっぽいのでそうしてみる。
class Foo
  def exception
    Exception.new
  end
end

rescue_test
# 出力 : #<Exception:Exception>

StringでもExceptionでないものをraiseしようとすると、実際に投げられるもの
は、そのオブジェクトのexceptionメソッドの返り値になる。その返り値が
ExceptionでなければTypeError(ただし返り値がnilの場合はRuntimeError)。
exceptionの呼びだしで例外が発生すればその例外がそのまま投げられる。

これをどこまでドキュメントに反映させるべきかって話もあるとは思いますが、
「何をraiseされようがrescue Exceptionで待っていれば補足はできる(でも情報
は欠落するカモ)」ということがわかるといいかなと思います。

Ruby本の105ページに「新しく例外を定義するときはException(またはそのサブ
クラス)から継承したクラスを定義します。」とある事ですし、いっそそれ以外
のものをraiseしようとしたら単純にArgumentErrorかTyepErrorでいいんじゃな
いかと思うのですが。いかがでしょうか?


それはそうと報告&修正済みかもしれませんが

  http://www.ruby-lang.org/ja/man-1.4/index.html

で以下の点に気付きました。

  o クラス一覧からthread.htmlへリンクがない(英語版も)

  o Exception.htmlに

    SignalException
    signal(2)を受け取ったときに発生します. rescueで捕捉できません.

   「rescueで捕捉できません.」の部分は英語にはありませんが、日本語
   の方の直しわすれでしょうか。

小宮
kom@t3.rim.or.jp

In This Thread

Prev Next