タグ

関連タグで絞り込む (2)

タグの絞り込みを解除

例外処理に関するhidemailのブックマーク (2)

  • Rubyの例外とその捕捉――基本のbegin~rescue~endからensure、else、retry、後置rescueまで

    連載目次 連載8回目に当たる前回の「Rubyの面白さを理解するためのメソッド、ブロック、Proc、lambda、クロージャの基」では、メソッドやブロックといった仕組みについて、さらに掘り下げて解説しました。前回学んだ知識は、メタプログラミングを学ぶための基礎となります。 連載9回目の今回は、他のオブジェクト指向言語でもポピュラーな仕組みである例外について学びます。例外の仕組みをうまく使うことによって、あるべきファイルが存在しない場合や、RubyプログラムからHTTPを使ってデータを取得できない場合などに、適切に対処できるようなプログラムを書くことができます。 多くのオブジェクト指向言語では、「例外」とその「捕捉」という仕組みを使うことで、エラーが発生した場合の処理を記述できます。ここでいうエラーとは、存在しないファイルを開こうとするなど、実行時の状況に依存するようなエラーです。また、例外

    Rubyの例外とその捕捉――基本のbegin~rescue~endからensure、else、retry、後置rescueまで
  • Rubyで自前の例外クラスを作るときExceptionではなくStandardErrorを継承する理由 - yarbの日記

    Rubyの例外について少し調べたので、まとめてみる。 多くのモダンな言語同様にRubyでは例外処理機構が組み込まれている。 ファイルを開こうと思ったらファイルが存在しなかった ネットワーク先のサーバが反応しなくてタイムアウトした 定義されていない(存在しない)メソッドを呼んだ 0で割り算をしてしまった など想定外の問題に遭遇したときに、その問題を無視せずプログラマが何らかの対応処理をするための枠組みを提供する。 C言語など古い言語では、関数からの戻り値でエラーコードを返し、それによって呼び出し側がエラー処理をその場で記述する。例えば、fopen(3)が失敗すると戻り値としてNULLが戻ってきてグローバル変数のerrnoに失敗の理由を示すエラーコードが設定される。 #include <stdio.h> #include <string.h> #include <errno.h> int ma

    Rubyで自前の例外クラスを作るときExceptionではなくStandardErrorを継承する理由 - yarbの日記
  • 1