国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 語言 > PHP > 正文

Laravel中錯誤與異常處理的用法示例

2024-05-05 00:05:24
字體:
來源:轉載
供稿:網友

前言

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

Laravel 自帶錯誤和異常處理,App/Exceptions/Handler 負責上報異常和如何返回內容,以及未登錄的處理。

App/Exceptions/Handler 位于 app/Exceptions/Handler.php,下面介紹這個類的屬性和用法。好了,話不多說了,來一起看看詳細的介紹吧

忽略異常

在 $dontReport 中可以定義忽略的異常類名:

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,];

這些異常就不會經過 report 方法。

幾個重要方法

主要介紹這三個方法,report,render 和 unauthenticated 的用法。

report方法

report 方法可以用來記錄日志,可以根據不同的異常類型(包括自定義異常類型),如 ClientException,ConnectException 定制不同的日志級別和日志內容。

if ($exception instanceof ABCException) { Log::emergency('ABC異常', $context);} else if ($exception instanceof HeheException) { Log::info('Hehe異常', $context);}

report 方法沒有返回值,也不應該在這里中斷程序。

render方法

render 方法可以根據不同的異常類型,返回不同的數據。如:

if (get_class($exception) == 'Exception' || $exception instanceof NotAllowedException) { return response()->json(['message' => $exception->getMessage()], 400);} elseif ( $exception instanceof ValidationException) { return response()->json(['message' => '校驗失敗', 'errors'=> $exception->validator->errors()], 400);}

unauthenticated

在訪問需要登錄態的頁面時,用戶未登錄就會進入這個方法進行處理,舉個例子說明:

protected function unauthenticated($request, AuthenticationException $exception){ if ($request->expectsJson()) {  return response()->json(['error' => 'Unauthenticated.'], 401); }  //如果是后臺頁面未認證,跳轉到后臺登陸頁面 $guard = $exception->guards(); if (in_array('admin', $guard)) {  return redirect()->guest('/admin/login'); }  return redirect()->guest('login');}

如果是返回 json,則統一返回格式。

默認情況下返回前臺的登錄頁,如果是訪問后臺頁面未登錄,則跳轉到后臺登錄頁。

官方文檔

Laravel 5.6

https://laravel-china.org/docs/laravel/5.6/errors/1373

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到PHP教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 中牟县| 武宣县| 沧州市| 沅江市| 柳江县| 湘阴县| 泽库县| 宣恩县| 奉贤区| 洛宁县| 金乡县| 兴隆县| 祁东县| 鹰潭市| 汝阳县| 乌兰察布市| 涿鹿县| 波密县| 双桥区| 山东省| 吉水县| 苗栗县| 黄平县| 山东省| 会泽县| 天气| 来安县| 岐山县| 扎囊县| 光山县| 沅陵县| 宁城县| 和龙市| 胶南市| 峨边| 巴彦县| 天台县| 天台县| 福安市| 万宁市| 城口县|