久久久久久久视色,久久电影免费精品,中文亚洲欧美乱码在线观看,在线免费播放AV片

<center id="vfaef"><input id="vfaef"><table id="vfaef"></table></input></center>

    <p id="vfaef"><kbd id="vfaef"></kbd></p>

    
    
    <pre id="vfaef"><u id="vfaef"></u></pre>

      <thead id="vfaef"><input id="vfaef"></input></thead>

    1. 站長資訊網(wǎng)
      最全最豐富的資訊網(wǎng)站

      一文詳解Laravel中怎么進(jìn)行異常處理

      一文詳解Laravel中怎么進(jìn)行異常處理

      Laravel 9 保姆級視頻教程,想學(xué)不會(huì)都難!進(jìn)入學(xué)習(xí)

      在本文中,我們將探討 Laravel Web 框架中最重要和最少討論的功能之一 – 異常處理。 Laravel 帶有一個(gè)內(nèi)置的異常處理程序,可以讓您輕松地以友好的方式報(bào)告和呈現(xiàn)異常。

      在文章的前半部分,我們將探討異常處理程序提供的默認(rèn)設(shè)置。 事實(shí)上,我們首先會(huì)通過默認(rèn)的 Handler 類來理解 Laravel 是如何處理異常的。

      在文章的后半部分,我們將繼續(xù)介紹如何創(chuàng)建自定義異常處理程序,以便您可以捕獲自定義異常。

      基本配置

      在開始研究異常處理類之前,讓我們先來看看幾個(gè)和異常相關(guān)且很重要的參數(shù)配置。

      打開 config/app.php 文件,并仔細(xì)的看看下面的代碼片段。

      ... ... /* |-------------------------------------------------------------------------- | 應(yīng)用的調(diào)試模式 |-------------------------------------------------------------------------- | | 當(dāng)引用處于調(diào)試模式,將會(huì)顯示錯(cuò)誤產(chǎn)生式的詳細(xì)堆棧信息 | 如果禁用,則只顯示一個(gè)簡單的錯(cuò)誤頁面 | */  'debug' => env('APP_DEBUG', false), ... ...
      登錄后復(fù)制

      從參數(shù)的名稱可以猜到,如果設(shè)置為 TRUE,將有利于我們調(diào)試應(yīng)用產(chǎn)生的錯(cuò)誤。默認(rèn)值由 .env 環(huán)境變量配置文件中的 APP_DEBUG 參數(shù)指定。

      在開發(fā)環(huán)境下,建議你將它設(shè)置為 TRUE ,這樣,通過清晰的錯(cuò)誤堆棧信息,能很快的定位錯(cuò)誤產(chǎn)生的原因并修復(fù)。 另外,當(dāng)處于正式環(huán)境是,我們需要通過環(huán)境變量的配置項(xiàng)來關(guān)閉它,當(dāng)錯(cuò)誤產(chǎn)生式將只顯示通用的提示頁面。

      除了將錯(cuò)誤顯示在頁面上,Laravel 也允許你將錯(cuò)誤記錄到日志文件中?,F(xiàn)在,讓我們來看看日志相關(guān)的配置,打開 config/app.php 文件,并仔細(xì)的看看下面的代碼片段。

      ... ... 'log' => env('APP_LOG', 'single'),  'log_level' => env('APP_LOG_LEVEL', 'debug'), ... ...
      登錄后復(fù)制

      Laravel 框架中,是使用 Monolog 庫來記錄日志的。你可以通過上面的配置項(xiàng)來配置 Monolog 庫。

      默認(rèn)的日志文件保存路徑為 storage/logs/laravel.log,通常情況下,你無需更改它。與此同時(shí),你可以通過 APP_LOG_LEVEL 來指定需要被記錄到日志文件的錯(cuò)誤級別。

      前面介紹了異常和日志的基本配置。

      接下來,我們看看 Laravel 應(yīng)用默認(rèn)的異常處理類。打開 app/Exceptions/Handler.php 文件.

      expectsJson()) {             return response()->json(['error' => 'Unauthenticated.'], 401);         }          return redirect()->guest(route('login'));     } }
      登錄后復(fù)制

      上面的處理類主要包含2個(gè)功能:報(bào)告和顯示所有的異常信息。

      讓我們仔細(xì)看一眼 report 方法。

      /**  * 報(bào)告或記錄一個(gè)異常。  *  * 這是一個(gè)將異常發(fā)送給 Sentry 和 Bugsnag 等機(jī)構(gòu)的好時(shí)機(jī)。  *  * @param  Exception  $exception  * @return void  */ public function report(Exception $exception) {     parent::report($exception); }
      登錄后復(fù)制

      report 方法用于將錯(cuò)誤記錄到日志文件中。同時(shí),關(guān)注一項(xiàng)重要的 dontReport 屬性,它列出了所有不應(yīng)該被記錄到日志的異常類別。

      接下來,我們介紹 render 方法。

      /**  * 將異常渲染至 HTTP 響應(yīng)值中。  *  * @param  IlluminateHttpRequest  $request  * @param  Exception  $exception  * @return IlluminateHttpResponse  */ public function render($request, Exception $exception) {     return parent::render($request, $exception); }
      登錄后復(fù)制

      如果說 report 方法是用于記錄或報(bào)告錯(cuò)誤,那么 render 方法是用于將錯(cuò)誤渲染顯示在屏幕上。事實(shí)上,當(dāng)異常發(fā)生時(shí),這個(gè)方法決定了哪些內(nèi)容將被展示給用戶。

      render 方法也允許你針對不同類別的錯(cuò)誤自定義響應(yīng)值,這部分內(nèi)容我們將在下一章學(xué)習(xí)。

      最后, unauthenticated 方法處理了 AuthenticationException 異常,你能夠在此決定當(dāng)用戶訪問了一個(gè)未授權(quán)頁面時(shí)所展示的內(nèi)容。

      自定義異常類

      在這一節(jié),我們將創(chuàng)建一個(gè)自定義異常類,用于處理 CustomException 類別的異常。創(chuàng)建自定義異常類背后的想法是更輕松地管理自定義異常同時(shí)顯示自定義響應(yīng)。

      開始著手創(chuàng)建一個(gè)文件 app/Exceptions/CustomException.php ,內(nèi)容如下所示。

      view(                 'errors.custom',                 array(                     'exception' => $this                 )         );     } }
      登錄后復(fù)制

      重要的是需要注意 CustomException 類必須繼承核心 Exception 類。為了演示用途,我們僅僅討論了 render 方法,但顯然你也能夠自定義修改 report 方法。

      正如你看到的,在樣例中我們將用戶重定向至 errors.custom 錯(cuò)誤頁面。通過這種方式,你能夠?yàn)樘囟愋偷漠惓?shí)現(xiàn)自定義的錯(cuò)誤頁面。

      當(dāng)然,我們需要?jiǎng)?chuàng)建一個(gè)關(guān)聯(lián)的視圖文件 resources/views/errors/custom.blade.php。

      Exception details: {{ $exception->getMessage() }}
      登錄后復(fù)制

      這是一個(gè)相當(dāng)簡單的視圖文件,只顯示一行錯(cuò)誤消息,不過你也可以按照自己希望的方式設(shè)計(jì)這個(gè)視圖。

      我們也需要在 app/Exceptions/Handler.php 文件的 render 方法中進(jìn)行一些修改,保證我們的自定義異常類能夠被調(diào)用。讓我們將 app/Exceptions/Handler.php 文件中的 render 方法替換為以下內(nèi)容。

      ... ... /**  * 將異常渲染至 HTTP 響應(yīng)值中。  *  * @param  IlluminateHttpRequest  $request  * @param  Exception  $exception  * @return IlluminateHttpResponse  */ public function render($request, Exception $exception) {     if ($exception instanceof AppExceptionsCustomException)  {         return $exception->render($request);     }      return parent::render($request, $exception); } ... ...
      登錄后復(fù)制

      正如你所看到的,我們會(huì)在 render 方法中首先檢查異常的類型。如果異常的類別是 AppExceptionsCustomException ,我們將調(diào)用這個(gè)類的 render 方法。

      一切準(zhǔn)備就緒?,F(xiàn)在我們創(chuàng)建一個(gè)控制 app/Http/Controllers/ExceptionController.php 來測試自定義的異常類。

      
      
      登錄后復(fù)制

      當(dāng)然,你需要先在 routes/web.php 文件中添加相關(guān)的路由,就像下面一樣。

      // Exception routes Route::get('exception/index', 'ExceptionController@index');
      登錄后復(fù)制

      之后,你可以瀏覽 http://your-laravel-site.com/exception/ind... 地址來查看是否和預(yù)期的一樣。一切正常的話,頁面將顯示我們前面配置 errors.custom 視圖。

      就這樣,你就可以按自己方式來處理 Laravel 中的異常。
      完!盡情享受 Laravel 帶來的編碼的樂趣吧!

      總結(jié)

      今天,我們認(rèn)真學(xué)習(xí)了 Laravel 中的異常處理特性。在文章的開頭,我們搜索了 Laravel 提供的一些基礎(chǔ)配置,用于顯示和報(bào)告異常。緊接著,我們簡要介紹了默認(rèn)的異常處理類。

      在文章的后半部分,我們通過創(chuàng)建一個(gè)自定義異常處理類,演示如何在應(yīng)用中處理自定義的異常。

      對于那些剛剛起步學(xué)習(xí) Laravel ,或者期待拓展閱讀相關(guān)知識(shí)、網(wǎng)站、應(yīng)用擴(kuò)展的讀者,這里有一系列您能夠?qū)W習(xí)的內(nèi)容,參見 Envato Market 。

      期待聽到任何形式的咨詢或建議!

      原文地址:https://code.tutsplus.com/tutorials/exception-handling-in-laravel--cms-30210

      譯文地址:https://learnku.com/laravel/t/8783/exception-handling-in-laravel

      贊(0)
      分享到: 更多 (0)
      網(wǎng)站地圖   滬ICP備18035694號-2    滬公網(wǎng)安備31011702889846號