Exception 在Zend Framework 1中不使用try-catch处理异常
我有一个在Zend Framework 1中开发的项目。项目已经完成 现在,当我测试整个站点时,一些页面抛出了异常。其中之一是: 异常“Zend_Paginator_exception”,消息为“类型NULL无适配器” 我已经在网上搜索了,并得到了添加try-catch的步骤。但是检查所有代码并重复这一步需要很多时间Exception 在Zend Framework 1中不使用try-catch处理异常,exception,zend-framework,Exception,Zend Framework,我有一个在Zend Framework 1中开发的项目。项目已经完成 现在,当我测试整个站点时,一些页面抛出了异常。其中之一是: 异常“Zend_Paginator_exception”,消息为“类型NULL无适配器” 我已经在网上搜索了,并得到了添加try-catch的步骤。但是检查所有代码并重复这一步需要很多时间 我可以编写一个通用异常处理程序来捕获所有异常并进行处理吗?Zend framework使用errorController自动处理异常。您可以通过在配置文件中添加以下行来启用它 re
我可以编写一个通用异常处理程序来捕获所有异常并进行处理吗?Zend framework使用errorController自动处理异常。您可以通过在配置文件中添加以下行来启用它
resources.frontController.throwExceptions = 0
如果您想手动处理异常,那么您可以使用下面的代码集中处理异常,而不是在代码中编写try/catch块
告诉Zend Framework不要处理异常。在应用程序中执行此操作。ini
resources.frontController.throwExceptions = 1
定义一个自定义方法来处理引导类中的异常。
public function __handleExceptions(Exception $e){
//render a view with a simple error message for the user
//and send an email with the error to admin
}
在引导类中重写Zend_Application_bootstrap_引导的\u bootstrap()
和run()
方法,如下所示。这将捕获引导和请求调度过程中抛出的所有异常,并调用自定义异常处理程序
protected function _bootstrap($resource = null)
{
try {
parent::_bootstrap($resource);
} catch(Exception $e) {
$this->__handleExecptions($e);
}
}
public function run()
{
try {
parent::run();
} catch(Exception $e) {
$this->__handleExecptions($e);
}
}
这将消除在多个位置编写try/catch块的需要。希望这有帮助。如果index.php中有这一行
$application->bootstrap()->run();
您可以使用try
catch
块将其包装起来
try {
$application->bootstrap()->run();
} catch (Exception $e) {
//handle all exceptions here
}
当然,对于不同类型的异常,您也可以有许多catch块。@Web\u Developer您的意思是什么?@Web\u Developer您需要覆盖Bootstrap()和run()方法。在引导类中。请参阅我的答案中的详细信息。@Web_开发者使用Zend_View组件并通过调用$e->getMessage()呈现您收到的消息;调用函数uu handleExecptions时出现拼写错误现在我可以在exception.resources.frontController.throweexceptions=0期间在函数中找到它。它不起作用。请删除此步骤并修改您的注释,包括拼写更正。我有这些行并添加了以下内容:try{$application->bootstrap();$application->run();}catch(异常$e){//此处处理所有异常会回显“Some error”;exit;}但仍会在屏幕上显示异常。