[#44578] Ruby初心者が作りました — Kabu and Ruby管理人 <kabu_and_ruby@...>

http://www.geocities.jp/kabuandruby/index.html

26 messages 2008/02/06

[#44691] ”Rubyアプリケーションプログラミング”の伝言サーバの使い方 — "Yangkook Kim" <yangkookkim@...>

キムと申します。オーム社から出版されている書籍、"Rubyアプリケーションプログラミング"のP267~275に掲載されている伝言サーバー&クライアントの利用の仕方がわかりません。質問を要約すると次の2点です。1、サーバーが正常に起動されているかどうかわからない。2、書き込みクライアントで入力をサーバーに送信する方法がわからない。

8 messages 2008/02/24

[ruby-list:44631] Re: warningをエラー扱いする方法について、他

From: rubikitch@...
Date: 2008-02-13 18:45:49 UTC
List: ruby-list #44631
From: yoshimi <kazuya.yoshimi@gmail.com>
Subject: [ruby-list:44627] warningをエラー扱いする方法について、他
Date: Thu, 14 Feb 2008 02:40:04 +0900

るびきちです。

> 一つ目は、タイトルにある通り、
> warningが発生した場合、エラーにして実行できないように
> したいのですが、これはどの様にすればできますでしょうか

ソースを書き換えるしか無理だと思います。
ruby -wで実行するくらいしか思い付きません…

> もう一点は、無計画なrescueを禁止したいので
> rescue時に補足する例外クラスの指定を必須にしたいと思っています。
> ただこの場合、rescue修飾子まで使えなくなってしまったり、
> 最終的にまとめてキャッチしたい場合はどうしようと
> まだ方法もわからないのに、そんな心配をしてしまってます。
> 
> なにか良い方法をご存知の方いらっしゃいませんでしょうか

evil.rbという身の毛もよだつ方法ならありますけど……。
evil.rbを使えばスーパークラスを変更できます…
StandardErrorな例外クラスしか無印rescueじゃ捕捉できません。それ基本。
だからStandardErrorな例外クラスをExceptionの直接のサブクラスにしてしまえば…
あな恐しや…自己責任で。

require 'rubygems'
require 'evil'

ArgumentError.superclass = Exception
IndexError.superclass = Exception
IOError.superclass = Exception
EOFError.superclass = Exception
LocalJumpError.superclass = Exception
NameError.superclass = Exception
NoMethodError.superclass = Exception
RangeError.superclass = Exception
FloatDomainError.superclass = Exception
RegexpError.superclass = Exception
RuntimeError.superclass = Exception
SecurityError.superclass = Exception
SystemCallError.superclass = Exception
SystemStackError.superclass = Exception
ThreadError.superclass = Exception
TypeError.superclass = Exception
ZeroDivisionError.superclass = Exception
StandardError.superclass = Exception

begin
  raise "Now RuntimeError cannot be rescued without class!"
rescue
  1
end
# ~> -:24: Now RuntimeError cannot be rescued without class! (RuntimeError)

--
rubikitch
Blog: http://d.hatena.ne.jp/rubikitch/
Site: http://www.rubyist.net/~rubikitch/

In This Thread