錯(cuò)誤處理

引發(fā)異常 在Yii中引發(fā)異常和在普通php文件中沒什么兩樣。你可以使用下面的代碼來拋出異常:
[php]throw new ExceptionClass('錯(cuò)誤信息');Yii定義了兩個(gè)異常類:[CException]和[CHttpException]。前者是一個(gè)通用的異常類,而后者用于對(duì)最終用戶顯示異常信息。同時(shí),后者有一個(gè)[statusCode|CHttpException::statusCode]屬性來代表HTTP狀態(tài)碼。異常的類型決定了顯示效果,下面會(huì)細(xì)說Tip|提示: 想要告訴用戶某個(gè)操作是錯(cuò)誤的,那么引發(fā)一個(gè)[CHttpException]異常是最簡(jiǎn)單的方法了。比如說,如果用戶在URL中提供了一個(gè)無效的ID值,我們可以顯示一個(gè)404錯(cuò)誤:[php]// 如果提交的ID是無效的throw new CHttpException(404,'此頁面不存在');顯示錯(cuò)誤 
使用一個(gè)動(dòng)作來處理錯(cuò)誤 Yii也可以使用控制器 動(dòng)作來處理錯(cuò)誤顯示。實(shí)現(xiàn)的方法是在應(yīng)用的配置文件中配置一個(gè)錯(cuò)誤處理器。
[php]return array( ...... 'components'=>array( 'errorHandler'=>array( 'errorAction'=>'site/error', ), ),);上面的代碼中,我們配置了[CErrorHandler::errorAction]屬性,屬性值是一個(gè)路由site/error。這個(gè)路由指向SiteController中的error。當(dāng)然,你也可以使用其他的路由。[php]public function actionError(){ if($error=Yii::app()->errorHandler->error) $this->render('error', $error);}我們可以這樣來編寫error動(dòng)作:
消息記錄
一個(gè)error級(jí)別的錯(cuò)誤信息會(huì)在錯(cuò)誤發(fā)生時(shí)候被記錄。如果這個(gè)錯(cuò)誤是由PHP warning 或 notice引發(fā)的,那么這個(gè)消息將會(huì)被記錄在php這個(gè)分類中;如果錯(cuò)誤信息是由未捕獲的異常所引起的,那么分類將是exception.ExceptionClassName(對(duì)于[CHttpException]來說,它的[statusCode|CHttpException::statusCode]也將被追加到分類名中)。開發(fā)者可以使用這些記錄來監(jiān)測(cè)應(yīng)用執(zhí)行時(shí)候的錯(cuò)誤信息
http://www.yiichina.com/doc/guide/1.1/topics.error
http://zhangxugg-163-com.iteye.com/blog/1671378
http://www.jb51.net/article/81110.htm
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注