From: rubikitch@... Date: 2008-02-14T03:45:49+09:00 Subject: [ruby-list:44631] Re: warningをエラー扱いする方法について、他 From: yoshimi 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/