国产chinesehdxxxx野外,国产av无码专区亚洲av琪琪,播放男人添女人下边视频,成人国产精品一区二区免费看,chinese丰满人妻videos

CakePHP的錯(cuò)誤和異常處理

2018-01-17 10:41 更新

為使系統(tǒng)平穩(wěn)的運(yùn)行,系統(tǒng)一旦出現(xiàn)故障就必須被有效的處理掉。CakePHP默認(rèn)附帶錯(cuò)誤捕獲功能,當(dāng)錯(cuò)誤發(fā)生的時(shí)候,就會(huì)打印并記錄這些錯(cuò)誤。這個(gè)錯(cuò)誤捕獲程序也被用來(lái)捕獲異常,當(dāng)debug為true的時(shí)候顯示錯(cuò)誤,當(dāng)debug為false的時(shí)候記錄錯(cuò)誤。CakePHP擁有數(shù)量龐大的異常類(lèi)和內(nèi)置的異常處理程序,會(huì)捕獲任何異常并顯示一個(gè)帶有有用信息的頁(yè)面。

錯(cuò)誤和異常配置

錯(cuò)誤和異??梢栽?strong>config\app.php文件中進(jìn)行配置。以下選項(xiàng)可以讓讓您定制應(yīng)用程序的錯(cuò)誤處理程序-

選項(xiàng)數(shù)據(jù)類(lèi)型描述
errorLevelint

要捕獲的錯(cuò)誤級(jí)別

使用內(nèi)置的PHP錯(cuò)誤常量和位掩碼來(lái)選擇你要捕獲的錯(cuò)誤的級(jí)別。

tracebool

是否在日志文件中為錯(cuò)誤包含堆棧跟蹤。

堆棧跟蹤將包含在日志中的每個(gè)錯(cuò)誤后,有助于查找錯(cuò)誤在何時(shí)何處發(fā)生。

exceptionRendererstring

該類(lèi)負(fù)責(zé)呈現(xiàn)未捕獲的異常。

如果您選擇自定義類(lèi),你應(yīng)該把該類(lèi)的文件放到src/Error目錄下。這個(gè)類(lèi)需要實(shí)現(xiàn)一個(gè)render()方法。

logbool

如果為true,異常+它們的堆棧跟蹤將被記錄到Cake\Log\Log文件中 。

skipLogarray

一個(gè)存儲(chǔ)不需要記錄的異常類(lèi)名的數(shù)組。

對(duì)過(guò)濾NotFoundExceptions或其他常見(jiàn)的,但不感興趣的日志非常有用。

extraFatalErrorMemoryint

為致命錯(cuò)誤發(fā)生時(shí)設(shè)置一個(gè)值(MB)來(lái)增加內(nèi)存。以保證可以完成日志記錄或錯(cuò)誤處理。

修改config/routes.php文件如下。

config/routes.php文件

<?php
   use CakeCorePlugin;
   use CakeRoutingRouteBuilder;
   use CakeRoutingRouter;

   Router::defaultRouteClass('DashedRoute');
   Router::scope('/', function (RouteBuilder $routes) {
      $routes->connect('/exception/:arg1/:arg2',[
         'controller'=>'Exps','action'=>'index'],['pass' => ['arg1', 'arg2']]);
      $routes->fallbacks('DashedRoute');
   });
   Plugin::routes();

src/Controller/目錄下創(chuàng)建ExpsController.php文件。復(fù)制以下代碼代碼至其中。

src/Controller/ExpsController.php

<?php
   namespace AppController;
   use AppControllerAppController;
   use CakeCoreExceptionException;

   class ExpsController extends AppController{
      public function index($arg1,$arg2){
         try{
            $this->set('argument1',$arg1);
            $this->set('argument2',$arg2);
            
            if(($arg1 < 1 || $arg1 > 10) || ($arg2 < 1 || $arg2 > 10))
            throw new Exception("One of the number is out of range[1-10].");
         }catch(Exception $ex){
            echo $ex->getMessage();
         }
      }
   }
?>

src/Template目錄下創(chuàng)建一個(gè)名為Exps目錄,并在此Exps下創(chuàng)建一個(gè)名為index.ctp視圖文件。復(fù)制以下代碼至其中。

src/Template/Exps/index.ctp

This is CakePHP tutorial and this is an example of Passed arguments.
Argument-1: <?=$argument1?>
Argument-2: <?=$argument2?>

通過(guò)訪(fǎng)問(wèn)以下網(wǎng)址執(zhí)行上面的例子。

http://localhost:85/CakePHP/exception/5/0

輸出

執(zhí)行以上程序,您會(huì)看到如下頁(yè)面。



以上內(nèi)容是否對(duì)您有幫助:
在線(xiàn)筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)