Я установил 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.