Zend framework 2 recommended way for error handling(Zend 框架 2 推荐的错误处理方式)
问题描述
我注意到 Zend 提供的 Skeleton Application 不能处理 error 500
.我知道在 ZF1 中有一个 ErrorController
来处理这个问题.我在网上做了一些研究,但没有找到明确的解决方案.
I noticed that the Skeleton Application that Zend provides does not handle error 500
. I know that in ZF1 there was an ErrorController
that took care of that. I have done some research online, but did not find a clear cut solution for this.
那么在 ZF2 中处理错误的最佳方法是什么?是基于每个模块还是某些全局异常/错误处理程序?
So what is the best way for error handling in ZF2. Would it be on per module basis or some global exception/error handler?
我知道另一种解决方案是将 ini_set('display_errors', true);
添加到我的 index.php
中,但我不太喜欢那个解决方案.框架似乎应该提供一些处理错误的方法.
I know that another solution would be to add ini_set('display_errors', true);
to my index.php
, but I don't really like that solution. It seems that the framework should provide some way for handling errors.
推荐答案
您可以在捕获异常后以任何方式处理异常,例如以下示例,其中全局捕获异常...:
You can handle the exceptions in anyway you want after catching it as the following example in which you are catching the exception globally...:
在你的Module.php
中的onBootstrap
方法中,你可以附加一个在事件发生时执行的函数,下面附加一个在发生错误时执行的函数(异常)引发:
In the onBootstrap
method in your Module.php
you can attach a function to execute when an event occurs, the following attach a function to be executed when an error (exception) is raised:
public function onBootstrap(MvcEvent $e)
{
$application = $e->getApplication();
$em = $application->getEventManager();
//handle the dispatch error (exception)
$em->attach(endMvcMvcEvent::EVENT_DISPATCH_ERROR, array($this, 'handleError'));
//handle the view render error (exception)
$em->attach(endMvcMvcEvent::EVENT_RENDER_ERROR, array($this, 'handleError'));
}
然后定义函数以任何你想要的方式处理错误,下面是一个例子:
and then define the function to handle the error in any way you want, the following is an example:
public function handleError(MvcEvent $e)
{
//get the exception
$exception = $e->getParam('exception');
//...handle the exception... maybe log it and redirect to another page,
//or send an email that an exception occurred...
}
这篇关于Zend 框架 2 推荐的错误处理方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本文标题为:Zend 框架 2 推荐的错误处理方式
基础教程推荐
- 使用 PDO 转义列名 2021-01-01
- 如何在 Symfony 和 Doctrine 中实现多对多和一对多? 2022-01-01
- 找不到类“AppHttpControllersDB",我也无法使用新模型 2022-01-01
- 在 yii2 中迁移时出现异常“找不到驱动程序" 2022-01-01
- HTTP 与 FTP 上传 2021-01-01
- 如何在 XAMPP 上启用 mysqli? 2021-01-01
- phpmyadmin 错误“#1062 - 密钥 1 的重复条目‘1’" 2022-01-01
- PHP 守护进程/worker 环境 2022-01-01
- 在 CakePHP 2.0 中使用 Html Helper 时未定义的变量 2021-01-01
- Doctrine 2 - 在多对多关系中记录更改 2022-01-01