<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                * * * * * [TOC] ## 介紹 當你啟動一個新的 Laravel 項目時,錯誤及異常處理是已為你配置好了的。`App\Exceptions\Handler`?類負責記錄應用程序觸發的所有異常并呈現給用戶。在本文檔中,我們將深入探討這個類。 ## 配置 `config/app.php`?配置文件中的?`debug`?選項決定了對于一個錯誤實際上將顯示多少信息給用戶。默認情況下,該選項的設置將遵照存儲在?`.env`?文件中的?`APP_DEBUG`?環境變量的值。 對于本地開發,你應該將?`APP_DEBUG`?環境變量的值設置為?`true`。在生產環境中,該值應始終為?`false`。如果在生產中將該值設置為?`true`,則可能會將敏感配置值暴露給應用程序的最終用戶。 ## 異常處理器 ### Report 方法 所有異常都是由?`App\Exceptions\Handler`?類處理的。這個類包含兩個方法:`report`?和?`render`。我們將詳細剖析這些方法。`report`?方法用于記錄異常或將它們發送給如?[Bugsnag](https://bugsnag.com/)?或?[Sentry](https://github.com/getsentry/sentry-laravel)?等外部服務。默認情況下,`report`方法將異常傳遞給記錄異常的基類。不過,你可以任何自己喜歡的方式來記錄異常。 例如,如果你需要以不同方式報告不同類型的異常,則可以使用 PHP?`instanceof`?比較運算符: ~~~ /** * Report or log an exception. * * This is a great spot to send exceptions to Sentry, Bugsnag, etc. * * @param \Exception $exception * @return void */ public function report(Exception $exception) { if ($exception instanceof CustomException) { // } return parent::report($exception); } ~~~ > {tip} 不要在?`report`?方法中進行太多的?`instanceof`?檢查,而應考慮使用?[可報告異常(reportable exception)](http://www.hmoore.net/tonyyu/laravel_5_6/786182#Reportable__Renderable__99)。 #### `Report`?輔助函數 有時你可能需要報告異常,但又不希望終止當前請求的處理。`report`?輔助函數允許你使用異常處理器的?`report`?方法在不顯示錯誤頁面的情況下快速報告異常: ~~~ public function isValid($value) { try { // Validate the value... } catch (Exception $e) { report($e); return false; } } ~~~ #### 按類型忽略異常 異常處理器的?`$dontReport`?屬性包含一組不會被記錄的異常類型。例如,由 404 錯誤導致的異常以及其他幾種類型的錯誤不會寫入日志文件。你可以根據需要添加其他異常類型到此數組中: ~~~ /** * A list of the exception types that should not be reported. * * @var array */ protected $dontReport = [ \Illuminate\Auth\AuthenticationException::class, \Illuminate\Auth\Access\AuthorizationException::class, \Symfony\Component\HttpKernel\Exception\HttpException::class, \Illuminate\Database\Eloquent\ModelNotFoundException::class, \Illuminate\Validation\ValidationException::class, ]; ~~~ ### Render 方法 `Render`?方法負責將給定的異常轉換為將被發送回瀏覽器的 HTTP 響應。默認情況下,異常將傳遞給為你生成響應的基類。不過,你可以按自己意愿檢查異常類型或返回自己的自定義響應: ~~~ /** * Render an exception into an HTTP response. * * @param \Illuminate\Http\Request $request * @param \Exception $exception * @return \Illuminate\Http\Response */ public function render($request, Exception $exception) { if ($exception instanceof CustomException) { return response()->view('errors.custom', [], 500); } return parent::render($request, $exception); } ~~~ ### Reportable & Renderable 異常 除了在異常處理器的?`report`?和?`render`?方法中檢查異常類型,你還可以直接在自定義異常上定義?`report`?和?`render`?方法。當定義了這些方法時,它們會被框架自動調用: ~~~ <?php namespace App\Exceptions; use Exception; class RenderException extends Exception { /** * Report the exception. * * @return void */ public function report() { // } /** * Render the exception into an HTTP response. * * @param \Illuminate\Http\Request * @return \Illuminate\Http\Response */ public function render($request) { return response(...); } } ~~~ ## HTTP 異常 一些異常用于描述產生自服務器的 HTTP 錯誤代碼。例如,「頁面未找到」錯誤(404),「未經授權的錯誤」(401),甚至可以是開發人員引起的 500 錯誤。 你可以使用?`abort`?輔助函數從應用程序的任何地方生成這樣的響應: ~~~ abort(404); ~~~ 輔助函數?`abort`?將即刻引發一個由異常處理器渲染的異常。你還可選擇性地提供響應文本: ~~~ abort(403, 'Unauthorized action.'); ~~~ ### 自定義 HTTP 錯誤頁面 Laravel 可以輕松顯示各種 HTTP 狀態代碼的自定義錯誤頁面。例如,如果你希望自定義 404 HTTP 狀態碼的錯誤頁面,可以創建一個?`resources/views/errors/404.blade.php`?視圖文件。該文件將被用于你的應用程序產生的所有 404 錯誤。此目錄中的視圖文件的命名應匹配它們對應的 HTTP 狀態碼。由?`abort`?函數引發的?`HttpException`?實例將作為?`$exception`?變量傳遞給視圖: ~~~ <h2>{{ $exception->getMessage() }}</h2> ~~~
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看