Laravel錯誤處理

Laravel所有的異常是由 app\Exceptions\Handler 類來處理。 這個類包含兩個方法 - report 和 render。

report()方法

report() 方法用於報告或記錄異常。 它也可以用來發送日誌例外類似 Sentry, Bugsnag 等外部擴展服務

render()方法

render() 方法用來呈現異常到HTTP響應送回瀏覽器。

除了這兩種方法,app\Exceptions\Handler 類包含一個一個重要屬性名爲 「$dontReport」。此屬性採用的異常類型數組將不會被日誌記錄。

HTTP例外


一些異常描述HTTP錯誤代碼類似:404,500等。要在應用程序中的任何地方產生這樣響應,你可以按如下方式使用abort()方法。

abort(404)

自定義錯誤頁


Laravel使得讓我們很容易使用每個單獨的錯誤代碼來自定義錯誤頁。 例如,如果想設計的自定義頁面錯誤代碼:404, 你可以創建一個視圖爲 :resources/views/errors/404.blade.php。同樣的道理,如果你想設計錯誤代碼是500的錯誤頁,它應存放在:resources/views/errors/500.blade.php.

示例

第1步 - 添加以下行到文件 : app/Http/routes.php

Route::get('/error',function(){
abort(404);
});

第2步 - 創建一個名爲 resources/views/errors/404.blade.php 的視圖文件,並複製下面的代碼到此文件中。

resources/views/errors/404.blade.php

404頁面
  <style>
     html, body {
        height: 100%;
     }
     body {
        margin: 0;
        padding: 0;
        width: 100%;
        color: #B0BEC5;
        display: table;
        font-weight: 100;
        'Lato';
     }
     .container {
        text-align: center;
        display: table-cell;
        vertical-align: middle;
     }
     .content {
        text-align: center;
        display: inline-block;
     }
     .title {
        font-size: 72px;
        margin-bottom: 40px;
     }
  </style>
  <div class = "container">
     <div class = "content">
        <div class = "title">404 錯誤</div>
     </div>
  </div>

第3步 - 訪問以下網址測試事件。

https://asset.1ju.org/error

第4步 - 訪問URL後,您會看到以下輸出 -
Laravel錯誤處理