Laravel show Whoops отладчик в среде разработки

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

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однако это исключает возможность включения переменных и сообщений, специфичных для этой функции.

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

0

Решение

Вы немного боретесь с этим потоком, 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;
}
}
1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]