2014-10-05 3 views
0

Мне нужна блоки try-catch внутри моей бизнес-логики. Таким образом, я могу выполнить некоторую регистрацию ошибки с другим контекстом.Laravel show Отключить отладчик в среде dev

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

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

Я понимаю, что я мог настроить пользовательские обработки в App::error в start/global.php ошибку, однако это устраняет возможность включения переменных и сообщения, относящиеся к этой функции.

Проблема в том, что теперь мои попытки блокируют ошибки при разработке. И я хотел бы получить отладчик исключения Whoops в режиме разработки. Это возможно?

ответ

1

Вы боретесь с потоком на этом, Ларавель кажется предвзятым в отношении использования исключений для сообщения о фактических ошибках (против использования исключений для потока управления приложениями, как и вы).

В 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; 
    } 
} 
+0

Это работало с отступом, спасибо! – Esben

Смежные вопросы