Hatena::ブログ(Diary)

はけの徒然日記 このページをアンテナに追加 RSSフィード

2005 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2006 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2007 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2008 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 10 | 11 | 12 |
2009 | 01 | 02 | 04 | 05 | 08 | 09 | 10 | 12 |
2010 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 | 11 |
2011 | 01 | 02 | 03 | 04 | 11 | 12 |
2012 | 02 | 03 | 05 |
2014 | 02 | 03 | 04 | 05 | 12 |
2015 | 05 | 07 | 08 | 09 | 10 | 11 | 12 |
2016 | 01 | 02 | 04 | 05 | 08 | 09 | 11 | 12 |
2017 | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 10 |

2006-09-28(Thu)

rescue

Ruby勉強

呼び出したメソッドでエラーが発生してもちゃんと補足してくれました <当たり前?

$@には呼び出した行と、実際にエラーが発生した行の2つが格納される。

begin
  a = nil
  a.abc
rescue Exception => err
  p err.class  #=> NoMethodError
  p err        #=> #<NoMethodError: undefined method `abc' for nil:NilClass>
  p $@         #=> ["F:/ruby_RDE/rb49F.tmp:3"]
  p $!         #=> #<NoMethodError: undefined method `abc' for nil:NilClass>
end


# methodでエラーになった場合
def test
  a = String.new
  a.abc
end

begin
  test
rescue Exception => err
  p err        #=> #<NoMethodError: undefined method `abc' for "":String>
  p $@         #=> ["F:/ruby_RDE/rb49F.tmp:12:in `test'", "F:/ruby_RDE/rb49F.tmp:16"]
  p $!         #=> #<NoMethodError: undefined method `abc' for "":String>
end

投稿したコメントは管理者が承認するまで公開されません。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/hake/20060928/p2
リンク元