2011-06-12 2 views
4

Action Helper에서 예외 (예 : throw new Zend_Exception('You are not allowed',403);)가 발생하면 ErrorHandler가이를 catch하지 않습니다. 나는 Fatal error: Uncaught exception 'Zend_Exception' with message 'You are not allowed' in..을 얻었습니다.액션 도우미에서 예외를 잡는 방법?

전 frontController에서도 throwExceptions = false를 설정했습니다.

어떻게 액션 컨트롤러에서 예외를 잡을까요?

+1

throwExceptions를 false로 설정하면 Zend Framework 자체가 예외를 throw하지 않습니다. 코드에서 특별히 throw되는 예외는 영향을받지 않습니다. –

+0

HTTP 상태 403 금지라는 전체 요청 신호를 보내고 있습니까? – hakre

답변

3

ErrorHandler 플러그인은 플러그인 또는 도우미에서 오류를 포착하도록 설계되지 않았으므로 postDispatch() 이벤트 루프에서 발생하는 오류를 catch하도록 설계되어있어 MVC에서 오류를 포착하는 데 더 적합합니다.

이것은 의도적으로 설계된 것입니다. 컨트롤러 도우미와 액션 도우미에서 예외를 던지거나 대신 "수동"오류 처리를 사용해야합니다.

+0

그럼 exirection을 던지기보다는 주소를 변경하기 위해 리다이렉터를 사용하는 것이 더 낫습니다. –

+0

출처 : http://framework.zend.com/manual/1.12/en/zend.controller.plugins.html#zend.controller.plugins.standard.errorhandler – mjs

관련 문제