Separuh pertama artikel akan meneroka tetapan lalai pengendali pengecualian dan menganalisis kelas pengendali lalai secara terperinci untuk memahami bagaimana pengecualian mengendalikan Laravel.
Bahagian kedua akan menunjukkan cara membuat pengendali pengecualian tersuai untuk menangkap pengecualian tersuai.
Penyediaan
Buka fail
config/app.php dan periksa coretan kod berikut:
<code>...<br>/*<br>|--------------------------------------------------------------------------<br>| 应用调试模式<br>|--------------------------------------------------------------------------<br>|<br>| 当应用程序处于调试模式时,将显示包含堆栈跟踪的详细错误消息,<br>| 这些消息与应用程序中发生的每个错误相关联。如果禁用,则显示<br>| 一个简单的通用错误页面。<br>|<br>*/<br><br>'debug' => (bool) env('APP_DEBUG', false),<br>...<br>...<br></code>
Seterusnya, mari kita lihat kaedah pelaporan lalai, yang digunakan untuk log ralat ke fail log. Pada masa yang sama, adalah penting untuk memberi perhatian kepada kaedah rendering, dan tentu saja, anda juga boleh menyesuaikan kaedah pelaporan.
seperti yang anda lihat, kami menggunakan yang berikut dalam fail
/pengecualian/handler.php untuk mengalihkan pengguna ke kaedah render:
<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>
, kaedah render kelas dipanggil. CustomException
CustomException
App/HTTP/Controllers/ExceptionController.php untuk menguji kelas pengecualian tersuai kami.
<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>
laluan/web.php seperti yang ditunjukkan di bawah:
<code>// 异常路由<br>Route::get('exception/index', 'ExceptionController@index');<br></code>
https://www.php.cn/link/acf7e77a5936a316105ce94cee5222f5d url untuk melihat sama ada ia berfungsi seperti yang diharapkan. Ia harus memaparkan pandangan mengikut konfigurasi kami. errors.custom
Ringkasan
Pada separuh kedua artikel, kami menyediakan kelas pengendali pengecualian tersuai yang menunjukkan cara mengendalikan pengecualian tersuai dalam aplikasi.
Atas ialah kandungan terperinci Pengendalian Pengecualian di Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!