2012-04-06 17 views
0

codeigniterのカスタム例外クラスを作成しようとしています。ここに私のコードです:codeigniterのカスタム例外クラスを作成する

class Ci_exception extends Exception { 

    var $CI; 

    function __construct() 
    { 
     $this->CI =& get_instance(); 
    } 

    public function errorMessage() 
    { 
     log_message('error', $this->getMessage()); 
     return $this->getMessage(); 
    } 

} 

このカスタムクラスは、コンストラクタメソッドがない場合は正常に動作します。構築メソッドで$ this-> getMessage()メソッドはメッセージを返しません。なぜ誰かが説明できますか?

答えて

1

親のコンストラクタを呼び出す必要があります。それはPHPでは暗黙のことではありません。 $messageパラメータを受け入れることもできます。

class Ci_exception extends Exception { 

    var $CI; 

    function __construct($message) 
    { 
     parent::__construct($message); 
     $this->CI =& get_instance(); 
    } 

    public function errorMessage() 
    { 
     log_message('error', $this->getMessage()); 
     return $this->getMessage(); 
    } 

} 
関連する問題