0

エラーを処理するためのクラスがあります。

コマンドを使用せずに、クラスの public static メソッドを呼び出して、RPC サーバーがスローしているエラーをログに記録したいと__LINE__思います。

このようなもの:

class errorHander{
    public static $errors = array();
    public static function logError($message){
        self::$errors[] = array('message', NEEED SOMHOW TO GET THE calling class, get the file in which the error ocured);
    }
}

そして、これは、呼び出された関数からファイルの場所を渡さずに、最も重要です。

したがって、次のようなことerrorHander:logError(message, location)はできません。

4

4 に答える 4

0

Exception::getLineメソッドとgetFileメソッド。例外を処理せずにこれを行う方法はありません。ここに参照があります。 http://www.php.net/manual/en/class.exception.php

于 2012-10-05T11:14:12.900 に答える
0

これは明らかに、エラーの種類によって異なります。

例外処理を見たいと思うかもしれません。PHP の例外クラスは、メソッド getLine() および getTrace() を提供します。これはあなたが探しているものかもしれません。

于 2012-10-05T11:10:53.153 に答える
0

logError() に必要なパラメーターは 2 つではなく 1 つだけです。

次のようにします。

 class errorHander{
        public static $errors = array();
        public static function logError($message){
            self::$errors[] = array('message'=>$message);
        }
    }


    errorHander:logError("This is a no-yes go") //This should log

    echo errorHander:errors[0]["message"]; //print it

それが役に立てば幸い

于 2012-10-05T11:22:11.150 に答える
0

これは xdebug-extension で可能です: http://xdebug.org

とを使用xdebug_call_file()xdebug_call_class()て、必要な情報を取得できます。

ドキュメントを参照してください: http://xdebug.org/docs/all_functions

于 2012-10-05T12:25:07.620 に答える