0

ビジネス ロジック内に try-catch ブロックが必要です。これにより、さらにコンテキストを使用してエラーのログを記録できます。

try {
    // business logic
} catch(Exception $e) {
    // Log message like 'Could not create user with email something@domain.com'
    $msgForUser = CustomErrorHandler::handleError($e, $data->email);

    // Display message like 'Your user was not created bla bla bla'
    return $msgForUser;
}

でカスタム エラー処理をセットアップできることはわかっていますがApp::errorstart/global.phpこれにより、その関数に固有の変数やメッセージを含める機会が失われます。

問題は、私の try ブロックが開発中のエラーをキャッチするようになったことです。そして、開発モードでWhoops例外デバッガーを引き続き取得したいと思います。これは可能ですか?

4

1 に答える 1

1

このフローに対して少し戦っています.Laravelは、実際のエラーを報告するために例外を使用することに偏っているようです(あなたのようにアプリケーション制御フローに例外を使用するのに対して)。

Laravel には、これを可能にするものは何もありません (私が知っています)。このロジックをあなたのCustomErrorHandler::handleErrorメソッドに入れます

class CustomerErrorHandler
{
    //assuming `CustomerErrorHandler::handleError` is a static method
    //call.  If its a facade define an instance method in your service
    //class.
    static public function handleError($e)
    {
        if(...is environment where I want to see whoops...)
        {
            throw $e;
        }

        //if we're still here it's production
        //so do our logging and create a 
        //$msgForUser string

        //...

        return $msgForUser;
    }
}
于 2014-10-05T21:05:18.843 に答える