多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php框架 > ZendFramework > Zend Framework教程-ErrorController,Exception

Zend Framework教程-ErrorController,Exception

來源:程序員人生   發布時間:2014-04-29 13:38:27 閱讀次數:3687次

            通常,應用會在運行過程中遇到一些錯誤,Zend Framework提供了對錯誤的拋出和捕捉機制,這樣可以對異常進行靈活的處理。

如果要在頁面上顯示錯誤消息,需要在配置文件中打開錯誤配置,如下:

resources.frontController.params.displayExceptions = 1phpSettings.display_startup_errors = 1phpSettings.display_errors = 1

Zend Framework的MVC中通過Zend_Controller_Front捕捉了異常,然后重定向到一個一般性的錯誤頁面或者主頁。Zend Framework提供的基本的拋出異常的處理如下:

/zf_demo1/application/controllers/ErrorController.php

<?phpclass ErrorController extends Zend_Controller_Action{    public function errorAction()    {        $errors = $this->_getParam('error_handler');                if (!$errors || !$errors instanceof ArrayObject) {            $this->view->message = 'You have reached the error page';            return;        }                switch ($errors->type) {            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ROUTE:            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:            case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:                // 404 error -- controller or action not found                $this->getResponse()->setHttpResponseCode(404);                $priority = Zend_Log::NOTICE;                $this->view->message = 'Page not found';                break;            default:                // application error                $this->getResponse()->setHttpResponseCode(500);                $priority = Zend_Log::CRIT;                $this->view->message = 'Application error';                break;        }                // Log exception, if logger available        if ($log = $this->getLog()) {            $log->log($this->view->message, $priority, $errors->exception);            $log->log('Request Parameters', $priority, $errors->request->getParams());        }                // conditionally display exceptions        if ($this->getInvokeArg('displayExceptions') == true) {            $this->view->exception = $errors->exception;        }                $this->view->request   = $errors->request;    }    public function getLog()    {        $bootstrap = $this->getInvokeArg('bootstrap');        if (!$bootstrap->hasResource('Log')) {            return false;        }        $log = $bootstrap->getResource('Log');        return $log;    }}

/zf_demo1/application/views/scripts/error/error.phtml


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>  <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />  <title>Zend Framework Default Application</title></head><body>  <h1>An error occurred</h1>  <h2><?php echo $this->message ?></h2>  <?php if (isset($this->exception)): ?>    <h3>Exception information:</h3>  <p>      <b>Message:</b> <?php echo $this->exception->getMessage() ?>  </p>  <h3>Stack trace:</h3>  <pre><?php echo $this->exception->getTraceAsString() ?>  </pre>  <h3>Request Parameters:</h3>  <pre><?php echo $this->escape(var_export($this->request->getParams(), true)) ?>  </pre>  <?php endif ?></body></html>


ErrorController不是必須的,但是通過ErrorController可以打印異常堆棧,對查找異常位置,定位異常,找到解決方法。對于異常的處理可以在這里進行統一的處理。


Controller中的trycatch進行拋出。


trycatch的基本用法如下:

try {    Zend_Loader::loadClass('nonexistantclass');} catch (Zend_Exception $e) {    echo "Caught exception: " . get_class($e) . "";    echo "Message: " . $e->getMessage() . "";    // 處理錯誤的代碼}



Zend_Framework定義了用到的常見的異常,默認的異常是 Zend_Exception。如果有必要,你可以定義自己的異常類。Zend_Framework處理異常的機制這里不做解釋,可以自行分析源代碼。



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲视频免费播放 | 一本久道久久综合婷婷五 | 欧美a级黄色 | 久久就是精品 | 最近最新中文字幕在线手机版 | 男女激情视频软件 | 午夜免费啪啪 | 一级中文字幕 | 亚洲福利一区二区 | 可以免费观看的黄色网址 | 日本欧美韩国 | 亚洲久久影院 | 日本大黄毛片视频 | 福利在线看片 | 最近更新中文字幕3 | 国产一二三区有声小说 | 久久精品国产欧美成人 | 亚洲国产高清在线精品一区 | 亚洲欧美综合久久 | 欧美人与动性xxxxx杂交 | 人善交videos欧美3 | 亚洲爽爽网站 | 久久久福利 | 一级在线观看视频 | 爱爱一级视频 | 国产精品亚洲一区二区三区久久 | 亚洲色播永久网址大全 | 国内高清久久久久久久久 | 亚洲成a人片在线观看精品 亚洲成a人片在线观看尤物 | 亚洲大片免费 | 国产欧美久久精品 | 国产精品一区久久 | 亚欧精品一区二区三区四区 | 精品在线一区二区三区 | 亚洲毛片在线看 | 国产情精品嫩草影院88av | 一区二区三区不卡在线观看 | 五月激情五月婷婷 | 2020亚洲天堂 | 偷拍区小说区图片区另类呻吟 | 免费一级欧美大片久久网 |