cari
Rumahrangka kerja phpLaravelCara mengendalikan pengecualian menggunakan perisian tengah dalam Laravel

Cara mengendalikan pengecualian menggunakan perisian tengah dalam Laravel

Nov 04, 2023 pm 02:26 PM
Pengendalian pengecualianperisian tengah laravelMiddleware mengendalikan pengecualian

Cara mengendalikan pengecualian menggunakan perisian tengah dalam Laravel

Cara menggunakan middleware untuk mengendalikan pengecualian dalam Laravel

Middleware ialah konsep penting dalam rangka kerja Laravel, yang boleh melakukan satu siri operasi sebelum dan selepas permintaan sampai kepada pengawal. Selain pengesahan kebenaran biasa, pengelogan dan fungsi lain, perisian tengah juga boleh digunakan untuk mengendalikan pengecualian. Dalam artikel ini, kami akan meneroka cara menggunakan perisian tengah untuk mengendalikan pengecualian dalam Laravel dan memberikan contoh kod khusus.

Pertama, kita perlu mencipta perisian tengah yang mengendalikan pengecualian. Kelas middleware boleh dijana dengan menjalankan arahan berikut:

php artisan make:middleware ExceptionHandlerMiddleware

Seterusnya, buka fail kelas middleware yang dijana, dan kita dapat melihat bahawa struktur kelas adalah seperti berikut:

namespace AppHttpMiddleware;

use Closure;

class ExceptionHandlerMiddleware
{
    public function handle($request, Closure $next)
    {
        return $next($request);
    }
}

Dalam kaedah pemegang, kita boleh mengendalikan pengecualian yang diminta. Demi demonstrasi, kami akan menangkap sebarang jenis pengecualian dan mengembalikan mesej ralat secara seragam. Kami boleh mengubah suai kod seperti berikut:

namespace AppHttpMiddleware;

use Closure;
use Exception;
use IlluminateHttpResponse;

class ExceptionHandlerMiddleware
{
    public function handle($request, Closure $next)
    {
        try {
            return $next($request);
        } catch (Exception $exception) {
            $message = $exception->getMessage();
            $code = $exception->getCode();
            $status = $exception->getCode() >= 400 && $exception->getCode() < 600 ? $exception->getCode() : 500;
            
            return response()->json(['message' => $message, 'code' => $code], $status);
        }
    }
}

Dalam kod di atas, kami mula-mula cuba melaksanakan permintaan dan mendapatkan hasilnya. Jika pengecualian berlaku, kami akan mendapat maklumat pengecualian, kod dan kod status dan mengembalikan respons JSON yang mengandungi maklumat ini. Jika kod pengecualian berada dalam julat 4xx atau 5xx, kami akan menggunakan kod pengecualian sebagai kod status respons, jika tidak, kami akan mengembalikan kod status 500.

Seterusnya, kita perlu mendaftarkan middleware ini kepada middleware global atau middleware penghalaan yang ditentukan. Cari atribut $middleware dalam fail app/Http/Kernel.php dan perkenalkan kelas middleware Kod contoh adalah seperti berikut: app/Http/Kernel.php文件中找到$middleware属性,并将中间件类引入,示例代码如下:

protected $middleware = [
    ...
    AppHttpMiddlewareExceptionHandlerMiddleware::class,
    ...
];

现在,我们已经将异常处理中间件注册到了全局中间件中。当请求到达控制器时,如果发生了异常,将会被中间件捕获并返回一个带有错误信息的JSON响应。

除了全局中间件,我们还可以将中间件应用到指定的路由中。在app/Http/Kernel.php文件中找到$routeMiddleware

protected $routeMiddleware = [
    ...
    'exception.handler' => AppHttpMiddlewareExceptionHandlerMiddleware::class,
    ...
];

Sekarang, kami telah mengendalikan pengecualian middleware didaftarkan dalam middleware global. Apabila permintaan mencapai pengawal, jika pengecualian berlaku, ia akan ditangkap oleh middleware dan mengembalikan respons JSON dengan maklumat ralat.

Selain perisian tengah global, kami juga boleh menggunakan perisian tengah pada laluan tertentu. Cari atribut $routeMiddleware dalam fail app/Http/Kernel.php dan tambahkan kod berikut:

Route::get('/', function () {
    // Your code here
})->middleware('exception.handler');

Kemudian, tambah perisian tengah dalam definisi laluan, contohnya ialah seperti berikut:

rrreee

Dengan cara ini, apabila mengakses laluan yang sepadan, pengecualian yang berlaku akan ditangkap dan diproses oleh perisian tengah. 🎜🎜Di atas ialah contoh terperinci menggunakan perisian tengah untuk mengendalikan pengecualian dalam Laravel. Dengan menggunakan middleware pengendalian pengecualian, kami boleh mengendalikan pengecualian yang berlaku dalam aplikasi dengan cara yang terperinci, meningkatkan kebolehbacaan dan kebolehselenggaraan kod. Harap artikel ini membantu anda! 🎜

Atas ialah kandungan terperinci Cara mengendalikan pengecualian menggunakan perisian tengah dalam Laravel. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan
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
Beyond the Zoom Call: Strategi Kreatif untuk Menghubungkan Pasukan TeragihBeyond the Zoom Call: Strategi Kreatif untuk Menghubungkan Pasukan TeragihApr 26, 2025 am 12:24 AM

Toenhanceengagementandcohesionamongdistributedteamsbeyondzoom, pelaksanaanTheseStregies: 1) Organizirtualcoffeebreaksforinformalchats, 2) Useasynchronoustoolslikeslackfornon-workdiscussions, 3) identgamificoWithteamgames

Apakah perubahan pecah dalam versi Laravel terkini?Apakah perubahan pecah dalam versi Laravel terkini?Apr 26, 2025 am 12:23 AM

Laravel10introducesseveralbreakingchanges: 1) itrequiresphp8.1orhigher, 2) therouteserviceProvidernowuseSabootmethforloadingRoutes, 3) thewithTimeStamps () methodeNeloquentRelationShipsisdePrecated, dan 4)

Paradoks Produktiviti: Mengekalkan Fokus dan Motivasi dalam Tetapan JauhParadoks Produktiviti: Mengekalkan Fokus dan Motivasi dalam Tetapan JauhApr 26, 2025 am 12:17 AM

TomaintainfocusandmotivationInremotework, createAstructureDenvironment, managedigitaldistractions, fostermotivationthroughsocialIntionsandgoalsetting, containstwork-lifebalance, anduseapproprateetechnology.1) SetupadedicationWorksPaceAndSticktoaroutine.

Membina Kepercayaan Dari Afar: Memupuk Kerjasama dalam Persekitaran TeragihMembina Kepercayaan Dari Afar: Memupuk Kerjasama dalam Persekitaran TeragihApr 26, 2025 am 12:13 AM

TofostercollaborationandTrustinremoteteams, ExplectionTheSestrated: 1) menubuhkan, StructuredCommunicationWithPersonalCheck-ins, 2) useCollaborativeToolSfortransparency, 3) pengiktirafan dan 4) fosteracultureoftrustandadaptability.

Apakah ciri -ciri utama versi Laravel terkini?Apakah ciri -ciri utama versi Laravel terkini?Apr 26, 2025 am 12:01 AM

Versi terbaru dari ciri -ciri utama Laravel termasuk: 1. Ciri -ciri ini meningkatkan kecekapan pembangunan dan prestasi aplikasi, tetapi perlu digunakan dengan berhati -hati untuk mengelakkan masalah yang berpotensi.

Ilusi kemasukan: menangani pengasingan dan kesepian dalam kerja terpencilIlusi kemasukan: menangani pengasingan dan kesepian dalam kerja terpencilApr 25, 2025 am 12:28 AM

Tocombatisolationandlonelinessinremotework, companesshouldimplementregular, articlefulinteractions, provideequalgrowthopposities, andusetechnologyefectively.1) FostergenuineconnectionnectionThoughvoughvirtualcoffeebreaksandpersonalusharing.2) Ensureremorsharing

Laravel untuk pembangunan penuh: panduan komprehensifLaravel untuk pembangunan penuh: panduan komprehensifApr 25, 2025 am 12:27 AM

Laravelispopularforfull-stackdevelopmentbeCausofersaseamlessblendofbackendpowerandfrontendflexibility.1) ITSBackendCapabilities, likeeloquentorm, SimplifyDatabaseIntions.2) thebladetemplatingengineAllowsforclean, dynamichtmltes.3)

Pertunjukan Persidangan Video: Memilih platform yang sesuai untuk mesyuarat jauhPertunjukan Persidangan Video: Memilih platform yang sesuai untuk mesyuarat jauhApr 25, 2025 am 12:26 AM

Faktor utama dalam memilih platform persidangan video termasuk antara muka pengguna, keselamatan, dan fungsi. 1) Antara muka pengguna harus intuitif, seperti zoom. 2) Keselamatan perlu diberi perhatian, dan pasukan Microsoft menyediakan penyulitan akhir-ke-akhir. 3) Fungsi perlu memadankan keperluan, GoogLemeet sesuai untuk mesyuarat pendek, dan Ciscowebex menyediakan alat kerjasama lanjutan.

See all articles

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

Video Face Swap

Video Face Swap

Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Alat panas

SublimeText3 versi Inggeris

SublimeText3 versi Inggeris

Disyorkan: Versi Win, menyokong gesaan kod!

VSCode Windows 64-bit Muat Turun

VSCode Windows 64-bit Muat Turun

Editor IDE percuma dan berkuasa yang dilancarkan oleh Microsoft

PhpStorm versi Mac

PhpStorm versi Mac

Alat pembangunan bersepadu PHP profesional terkini (2018.2.1).

Versi Mac WebStorm

Versi Mac WebStorm

Alat pembangunan JavaScript yang berguna

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual