« 目次

Movable Type オブジェクト・リファレンス

MT::ErrorHandler

概要

package Foo;
use MT::ErrorHandler;
@Foo::ISA = qw( MT::ErrorHandler );

sub class_method {
    my $class = shift;
    ...
    return $class->error("Help!")
    unless $continue;
}

sub object_method {
    my $obj = shift;
    ...
    return $obj->error("I am no more")
    unless $continue;
}

package main;
use Foo;

Foo->class_method or die Foo->errstr;

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

解説

MT::ErrorHandlerは、すべてのモジュール/クラスにおけるエラー処理メカニズムを提供します。他のクラスが、このクラスからエラー処理メソッドを継承して使えるようにするための基底クラスとして機能することを目的としています。こうした派生クラスでは、errorerrstrという2つのメソッドを使って、呼び出し側のプログラムにエラーを伝えることができます。

理由が何であれ、失敗した場合には、サブクラスはerrorメソッドを呼び出し、それを呼び出し側に返す必要があります。errorは、内部でエラー・メッセージを設定した上で、undefを返します。この結果、失敗したメソッドが呼び出し側にundefを返すことになります。

呼び出し側では、戻り値がundefでないかどうかを調べてエラーをチェックし、エラーであればerrstrを呼び出してエラー・メッセージの値を取得しなければなりません。エラーが発生しなかったときにerrstrを呼び出した場合の動作は定義されていないため、意図した結果が得られることはほとんどないということに注意してください。

errorerrstrは、クラス・メソッドとしてもインスタンス・メソッドとしても動作します。

利用方法

Class->error($message)
$object->error($message)

Classに指定したクラス、または$objectに指定したオブジェクトのエラー・メッセージを$messageに設定します。戻り値はundefです。

Class->errstr
$object->errstr

Classに指定したクラス、または$objectに指定したオブジェクトに最後に設定されたエラー・メッセージにアクセスし、そのエラー・メッセージを返します。


Copyright © 2001-2006 Six Apart, Ltd. All Rights Reserved.