この記事では、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
すべてが準備ができています。次に、カスタム例外クラスをテストするために、<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 サイトの他の関連記事を参照してください。