Laravelでの例外処理

William Shakespeare
リリース: 2025-03-07 01:09:08
オリジナル
895 人が閲覧しました

Exception Handling in Laravel

この記事では、Laravel Framework -Exception Handlingで重要ではあるがめったに言及されていない機能について詳しく説明します。 Laravelの組み込みの例外ハンドラーは、例外を簡単かつ友好的に報告およびレンダリングできます。

記事の前半では、例外ハンドラーのデフォルト設定を検討し、デフォルトのハンドラークラスを詳細に分析して、Laravelが例外を処理する方法を理解します。

後半は、カスタム例外をキャッチするためのカスタム例外ハンドラーを作成する方法を示します。

準備

ハンドラークラスに直接入る前に、まず例外に関連するいくつかの重要な構成パラメーターを理解しましょう。

config/app.phpファイルを開き、次のコードスニペットを注意深く確認してください:

<code>...<br>/*<br>|--------------------------------------------------------------------------<br>| 应用调试模式<br>|--------------------------------------------------------------------------<br>|<br>| 当应用程序处于调试模式时,将显示包含堆栈跟踪的详细错误消息,<br>| 这些消息与应用程序中发生的每个错误相关联。如果禁用,则显示<br>| 一个简单的通用错误页面。<br>|<br>*/<br><br>'debug' => (bool) env('APP_DEBUG', false),<br>...<br>...<br></code>
ログイン後にコピー

名前が示唆するように、詳細なエラー情報とスタックトレースがfalseに設定されると、一般的なエラーページのみが表示されます。

次に、エラーをログファイルにログに記録するために使用されるデフォルトの報告方法を見てみましょう。同時に、レンダリング方法に注意を払うことが重要であり、もちろん、レポート方法をカスタマイズすることもできます。

ご覧のとおり、以下をapp/exceptions/handler.phpファイルで使用して、ユーザーをレンダリング方法にリダイレクトします。

<code>/**<br> * 将异常渲染为 HTTP 响应。<br> *<br> * @param  \Illuminate\Http\Request  $request<br> * @param  \Throwable  $exception<br> * @return \Symfony\Component\HttpFoundation\Response<br> *<br> * @throws \Throwable<br> */<br>public function render($request, Throwable $exception)<br>{<br>    if ($exception instanceof \App\Exceptions\CustomException)  {<br>        return $exception->render($request);<br>    }<br><br>    return parent::render($request, $exception);<br>}<br></code>
ログイン後にコピー
ご覧のとおり、最初にレンダリング方法の例外のタイプを確認します。例外タイプの場合、クラスのレンダリング方法が呼び出されます。

CustomException

クラス

をテストする方法 CustomExceptionすべてが準備ができています。次に、カスタム例外クラスをテストするために、

app/http/controllers/exceptioncontroller.php でコントローラーファイルを作成しましょう。 もちろん、以下に示すように、関連するルートをroutes/web.php
<code><?php <br>namespace App\Http\Controllers;<br><br>use App\Http\Controllers\Controller;<br><br>class ExceptionController extends Controller<br>{<br>    public function index()<br>    {<br>        // 出现错误,您想抛出 CustomException<br>        throw new \App\Exceptions\CustomException('出现错误。');<br>    }<br>}<br></code>
ログイン後にコピー
に追加する必要があります。

これで、

https://www.php.cn/link/acf7e77a5936a316105ce94cee5222f5dにアクセスできます。構成に応じて
<code>// 异常路由<br>Route::get('exception/index', 'ExceptionController@index');<br></code>
ログイン後にコピー
ビューを表示する必要があります。

これは、Laravelでカスタム例外を処理する方法です。 要約 errors.custom今日、Laravelで例外処理機能を学びました。記事の冒頭で、Laravelが提供する基本的な構成を、例外をレンダリングおよび報告するために検討します。さらに、デフォルトの例外ハンドラークラスを簡単に理解します。

記事の後半では、アプリケーションでカスタム例外を処理する方法を示すカスタム例外ハンドラークラスを準備しました。

以上がLaravelでの例外処理の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート