January 03, 2005

Class::ErrorHandler

[ Perl ]
Class::ErrorHandler provides an error-handling mechanism that's generic enough to be used as the base class for a variety of OO classes. Subclasses inherit its two error-handling methods, error and errstr, to communicate error messages back to the calling program.

URI::Fetch のサンプルにおける Ben のエラーハンドリングの仕方が見覚えあるなと思ってみていたら Class::ErrorHandler というクラスを使っていました。これは Movable Type のフレームワーク上で行われていたエラーハンドリングの方法をクラスにして CPAN にあげたものですね。実際、コードの中身は MT::ErrorHandler と一緒でした。

Class::ErrorHandler を継承したクラスには error メソッドと errstr メソッドが提供されます。

package Foo;
use base qw (Class::ErrorHandler);
 
sub method {
    my $self = shift;
    ...
    unless $condition or 
        return $class->error('error messages here.');
}

としてやると、method() の呼び出しもとに undef が返り、そのオブジェクトに対して errstr メソッドを発行してやるとメッセージが引きだせる、という仕組みです。

my $foo = Foo->new;
$foo->method or die $foo->errstr;

このハンドリングの仕方、結構好きだったのですがこうして CPAN にアップされた(アップされたのは結構前なんですけど。)ということで心置きなく真似することができそうです。

Posted by naoya at January 3, 2005 11:34 AM | トラックバック (2)  b_entry.gif
トラックバック [2件]
TrackBack URL: http://mt.bloghackers.net/mt/suck-tbspams.cgi/1408
Class::ErrorHandler
Excerpt: perlのクラスにエラーハンドリング機構を加える クラスがリリースされた模様。 URI::Fetchなんてのもあるのも知った事だし、 Net::JMAを気合い...
Weblog: かもめ日記
Tracked: January 3, 2005 04:25 PM
RelatedLink
Excerpt: 参考になりそうなURL † ↑フレームワーク † ↑Catalyst † Catalys...
Weblog: PukiWiki/TrackBack 0.2
Tracked: May 27, 2005 07:23 PM
コメント [0件]
コメントする









名前、アドレスを登録しますか?