Przechwytywanie wyjątków za pomocą innej procedury obsługi aplikacji REST

Problem

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 Symfony2

Ten argument można również zastosować do Symfony2, chciałbym także możliwe rozwiązanie tego problemu!

Pierwsze rozwiązanie dla Silex

Zawijaj 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?

questionAnswers(2)

yourAnswerToTheQuestion