Pracuję nad aplikacją RESTful przy użyciu Laravel 5 i próbuję wychwycić wyjątki i wygenerować odpowiednią odpowiedź. Używam również pakietu tymondesigns/jwt-auth, aby wszystkie odpowiedzi interfejsu API były w formacie JSend JSON.Jak wychwycić globalne wyjątki w laravel 5 generowane przez pakiet tymondesigns/jwt-auth?
W tej chwili próbuję złapać TokenExpiredException
, która pojawia się, gdy dany token wygasa oczywiście. Więc próbowałem to w Handler.php
:
if($e instanceof TokenExpiredException)
{
return jsend()->error()
->message("Token Expired")
->code(403)
->data([null])
->get();
}
Ale ja nadal nie jestem w stanie złapać ten wyjątek i oddać odpowiedź JSON. Mimo, że jestem w stanie to zrobić dla innych wyjątków, takich jak:
if ($e instanceof ModelNotFoundException) {
$e = new NotFoundHttpException($e->getMessage(), $e);
return jsend()->error()
->message("404 Model Not Found")
->data([null])
->get();
}
oraz:
if ($this->isHttpException($e))
{
if($e instanceof NotFoundHttpException)
{
return jsend()->error()
->message("404 Route Not Found")
->data([null])
->get();
}
return $this->renderHttpException($e);
}
Jak obsługiwać inne wyjątki w laravel?
Czy to nadal działa z Laravel 5.4? Ponieważ ustawiłem to tak jak powyżej, ale nadal nie przechwytuje wyjątku – gthuo