Как поймать исключения в ваших ZF2-контроллерах?

Я установил ZendSkeletonApplication с ZF 2.0.3 и я не могу поймать исключения в своих контроллерах. Например, если я поместил следующий фрагмент кода в module/Application/src/Application/Controller/IndexController.php :

 public function indexAction() { echo "BEFORE\n"; try { throw new \Exception("My exception"); } catch (Exception $e) { echo "Caught exception $e\n"; exit; } 

и получить доступ к странице, которую я получаю:

 BEFORE An error occurred An error occurred during execution; please try again later. Additional information: Exception File: module/Application/src/Application/Controller/IndexController.php:25 Message: My exception 

ViewModel запускает и отображает исключение, что фактически мешает мне его поймать.

Как я могу перехватывать исключения в контроллерах ZF2 ?

Вы бросаете родовое исключение PHP

 throw new \Exception("My exception"); 

но вы улавливаете Исключение из текущего пространства имен

 } catch (Exception $e) { 

Предполагая, что ваш контроллер находится в Application\Controller , вам либо нужно объявить

 use \Exception; 

над вашим классом, чтобы импортировать глобальное исключение в текущее пространство имен или

 } catch (\Exception $e) { 

чтобы поймать глобальное исключение PHP.