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

<!DOCTYPE html>
<html>

   <head>
      <title>404頁面</title>
      <link href = "https://fonts.googleapis.com/css?family=Lato:100" rel = "stylesheet"
         type = "text/css">

      <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>

   </head>
   <body>

      <div class = "container">
         <div class = "content">
            <div class = "title">404 錯誤</div>
         </div>
      </div>

   </body>
</html>
第3步 - 訪問以下網址測試事件。

http://localhost:8000/error

第4步 - 訪問URL後,您會看到以下輸出 -



上一篇: Laravel Ajax 下一篇: Laravel事件處理