Rumah > pembangunan bahagian belakang > tutorial php > Pengendalian Pengecualian di Laravel

Pengendalian Pengecualian di Laravel

William Shakespeare
Lepaskan: 2025-03-07 01:09:08
asal
894 orang telah melayarinya

Exception Handling in Laravel

Artikel ini membincangkan fungsi kritikal tetapi jarang disebut dalam kerangka Laravel - pengendalian pengecualian. Pengendali pengecualian terbina dalam Laravel boleh dengan mudah dan mesra melaporkan dan memberi pengecualian.

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

Sebelum terus ke kelas pengendali, mari kita mula -mula memahami beberapa parameter konfigurasi utama yang berkaitan dengan pengecualian.

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>
Salin selepas log masuk
seperti yang dicadangkan, jika ditetapkan kepada maklumat ralat yang benar dan terperinci akan dipaparkan;

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>
Salin selepas log masuk
Seperti yang anda lihat, kami mula -mula menyemak jenis pengecualian dalam kaedah render. Jika jenis pengecualian adalah

, kaedah render kelas dipanggil. CustomException

bagaimana untuk menguji kelas

kami CustomException

semuanya sudah siap sekarang. Seterusnya, mari buat fail pengawal dalam

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>
Salin selepas log masuk
Sudah tentu, anda perlu menambah laluan yang berkaitan dalam

laluan/web.php seperti yang ditunjukkan di bawah:

<code>// 异常路由<br>Route::get('exception/index', 'ExceptionController@index');<br></code>
Salin selepas log masuk
dengan ini anda boleh melawat

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

Ini adalah cara menangani pengecualian tersuai di Laravel.

Ringkasan

Hari ini, kami mempelajari fungsi pengendalian pengecualian di Laravel. Pada permulaan artikel, kami meneroka konfigurasi asas yang disediakan oleh Laravel untuk membuat dan melaporkan pengecualian. Di samping itu, kami secara ringkas memahami kelas pengendali pengecualian lalai.

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!

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan