Przechwytywanie wyjątków za pomocą innej procedury obsługi aplikacji REST
Buduję małą aplikację zSilex. Jest podzielony między aplikację REST i stronę internetową. (dwa kontrolery, ta sama aplikacja). Strona zainstalowała swojewłasny niestandardowy program obsługi błędów, która zwraca przyjazną dla użytkownika stronę html. Problem polega na tym, że w części dedykowanej aplikacji REST powinienem jakoś obsłużyć wyjątki w celu zwrócenia typu [json] i treści innej niż niestandardowa witryna obsługi błędów.
Z Symfony2Ten argument można również zastosować do Symfony2, chciałbym także możliwe rozwiązanie tego problemu!
Pierwsze rozwiązanie dla SilexZawijaj metody w bloku try-catch, aby przerzucić wyjątek do procedury obsługi.
$app->get('/api/show-list', function() use($app){
try {
$show = // db query, etc.
return $app->json(array('show' => $show), 200);
} catch (Exception $e) {
throw new MyException;
}
});
$app->error(function (MyException $e, $code) {
// error api
});
Problem polega na tym, że jeśli wyjątek zostanie wyrzucony z mojego kontrolera, zostanie użyty domyślny program obsługi błędów. Kilka porad? A z Symfony?