suchen
HeimPHP-FrameworkLaravelSo behandeln Sie Ausnahmen mithilfe von Middleware in Laravel

So behandeln Sie Ausnahmen mithilfe von Middleware in Laravel

Nov 04, 2023 pm 02:26 PM
异常处理laravel中间件Middleware behandelt Ausnahmen

So behandeln Sie Ausnahmen mithilfe von Middleware in Laravel

So verwenden Sie Middleware zur Behandlung von Ausnahmen in Laravel

Middleware ist ein wichtiges Konzept im Laravel-Framework, das eine Reihe von Vorgängen ausführen kann, bevor und nachdem die Anforderung den Controller erreicht. Zusätzlich zur allgemeinen Berechtigungsüberprüfung, Protokollierung und anderen Funktionen kann Middleware auch zur Behandlung von Ausnahmen eingesetzt werden. In diesem Artikel untersuchen wir, wie Middleware zur Behandlung von Ausnahmen in Laravel verwendet wird, und stellen spezifische Codebeispiele bereit.

Zuerst müssen wir eine Middleware für die Ausnahmebehandlung erstellen. Eine Middleware-Klasse kann durch Ausführen des folgenden Befehls generiert werden:

php artisan make:middleware ExceptionHandlerMiddleware

Öffnen Sie als Nächstes die generierte Middleware-Klassendatei, und wir können sehen, dass die Struktur der Klasse wie folgt ist:

namespace AppHttpMiddleware;

use Closure;

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

In der Handle-Methode können wir das verarbeiten beantragte Ausnahme. Zur Veranschaulichung werden wir jede Art von Ausnahme abfangen und einheitlich eine Fehlermeldung zurückgeben. Wir können den Code wie folgt ändern:

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);
        }
    }
}

Im obigen Code versuchen wir zunächst, die Anfrage auszuführen und das Ergebnis zu erhalten. Wenn eine Ausnahme auftritt, erhalten wir die Ausnahmeinformationen, den Code und den Statuscode und geben eine JSON-Antwort mit diesen Informationen zurück. Wenn der Ausnahmecode in den Bereich 4xx oder 5xx fällt, verwenden wir den Ausnahmecode als Antwortstatuscode, andernfalls geben wir einen Statuscode 500 zurück.

Als nächstes müssen wir diese Middleware bei der globalen Middleware oder der angegebenen Routing-Middleware registrieren. Suchen Sie das Attribut $middleware in der Datei app/Http/Kernel.php und führen Sie die Middleware-Klasse wie folgt ein: app/Http/Kernel.php文件中找到$middleware属性,并将中间件类引入,示例代码如下:

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

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

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

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

Jetzt haben wir es geschafft Ausnahme: Die Middleware ist in der globalen Middleware registriert. Wenn die Anforderung den Controller erreicht und eine Ausnahme auftritt, wird diese von der Middleware abgefangen und gibt eine JSON-Antwort mit Fehlerinformationen zurück.

Zusätzlich zur globalen Middleware können wir Middleware auch auf bestimmte Routen anwenden. Suchen Sie das Attribut $routeMiddleware in der Datei app/Http/Kernel.php und fügen Sie den folgenden Code hinzu:

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

Fügen Sie dann die Middleware in der Routendefinition hinzu, das Beispiel lautet wie folgt:

rrreee

Auf diese Weise wird beim Zugriff auf die entsprechende Route die auftretende Ausnahme von der Middleware abgefangen und verarbeitet. 🎜🎜Das Obige ist ein detailliertes Beispiel für die Verwendung von Middleware zur Behandlung von Ausnahmen in Laravel. Durch den Einsatz von Middleware zur Ausnahmebehandlung können wir Ausnahmen, die in der Anwendung auftreten, feinkörnig behandeln und so die Lesbarkeit und Wartbarkeit des Codes verbessern. Ich hoffe, dieser Artikel hilft Ihnen! 🎜

Das obige ist der detaillierte Inhalt vonSo behandeln Sie Ausnahmen mithilfe von Middleware in Laravel. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Laravel (PHP) gegen Python: Wiegen Sie die Vor- und NachteileLaravel (PHP) gegen Python: Wiegen Sie die Vor- und NachteileApr 17, 2025 am 12:18 AM

Laravel eignet sich zum schnellen Aufbau von Webanwendungen, während Python für eine breitere Palette von Anwendungsszenarien geeignet ist. 1. Laravel bietet eloquentorm, Blade Template Engine und handwerkliche Tools, um die Webentwicklung zu vereinfachen. 2. Python ist bekannt für seine dynamischen Typen, die reichhaltige Standardbibliothek und sein Ökosystem von Drittanbietern und eignet sich für Webentwicklung, Datenwissenschaft und andere Bereiche.

Laravel vs. Python: Vergleich von Frameworks und BibliothekenLaravel vs. Python: Vergleich von Frameworks und BibliothekenApr 17, 2025 am 12:16 AM

Laravel und Python haben jeweils ihre eigenen Vorteile: Laravel eignet sich zum schneller Aufbau von Funktionsanwendungen mit Feature, und Python spielt in den Bereichen Datenwissenschaft und allgemeine Programmierung gut. 1. Laravel bietet eloquentorm- und Blade -Vorlagemotoren, die für den Aufbau moderner Webanwendungen geeignet sind. 2. Python verfügt über eine reichhaltige Standardbibliothek und ein Drittanbieter-Bibliothek, und Django und Flask Frameworks erfüllen unterschiedliche Entwicklungsbedürfnisse.

Laravels Zweck: Aufbau robuster und eleganter WebanwendungenLaravels Zweck: Aufbau robuster und eleganter WebanwendungenApr 17, 2025 am 12:13 AM

Laravel ist es wert, sich zu entscheiden, da die Codestruktur und der Entwicklungsprozess künstlerischer werden kann. 1) Laravel basiert auf PHP, folgt der MVC -Architektur und vereinfacht die Webentwicklung. 2) Seine Kernfunktionen wie eloquentorm, handwerkliche Werkzeuge und Klingenvorlagen verbessern die Eleganz und Robustheit der Entwicklung. 3) Durch Routing, Controller, Modelle und Ansichten können Entwickler Anwendungen effizient erstellen. 4) Fortgeschrittene Funktionen wie Warteschlangen- und Ereignisüberwachung verbessern die Anwendungsleistung weiter.

Laravel: In erster Linie ein Backend -Framework erklärtLaravel: In erster Linie ein Backend -Framework erklärtApr 17, 2025 am 12:02 AM

Laravel ist nicht nur ein Back-End-Framework, sondern auch eine vollständige Webentwicklungslösung. Es bietet leistungsstarke Back-End-Funktionen wie Routing, Datenbankvorgänge, Benutzerauthentifizierung usw. und unterstützt die Entwicklung der Front-End-Entwicklung, wodurch die Entwicklungseffizienz der gesamten Webanwendung verbessert wird.

Laravel (PHP) gegen Python: Wichtige Unterschiede verstehenLaravel (PHP) gegen Python: Wichtige Unterschiede verstehenApr 17, 2025 am 12:01 AM

Laravel eignet sich für die Webentwicklung. Python eignet sich für Datenwissenschaft und schnelles Prototyping. 1. Laravel basiert auf PHP und bietet elegante Syntax- und reichhaltige Funktionen wie eloquentorm. 2. Python ist bekannt für seine Einfachheit, die in der Webentwicklung und in der Datenwissenschaft häufig verwendet wird, und verfügt über ein reichhaltiges Bibliotheksökosystem.

Laravel in Aktion: Anwendungen und Beispiele in realer WeltLaravel in Aktion: Anwendungen und Beispiele in realer WeltApr 16, 2025 am 12:02 AM

LaravelcanbeeffectivyusedInreal-worldapplicationsforbuildingsCalablewebsolutions.1) ITSIMPIFIESSCRUDOPERATIONSINRESTUFULAUSUSUKEN.2) LARAVEL'SECOSYSTEM, einschließlich Toolslikenova, verstärktdelob

Laravels Hauptfunktion: Backend -EntwicklungLaravels Hauptfunktion: Backend -EntwicklungApr 15, 2025 am 12:14 AM

Zu den Kernfunktionen von Laravel in der Back-End-Entwicklung gehören Routing-System, eloquentorm, Migrationsfunktion, Cache-System und Warteschlangensystem. 1. Das Routing -System vereinfacht die URL -Zuordnung und verbessert die Codeorganisation und die Wartung. 2.Loquentorm bietet objektorientierte Datenoperationen zur Verbesserung der Entwicklungseffizienz. 3. Die Migrationsfunktion verwaltet die Datenbankstruktur durch Versionskontrolle, um eine Konsistenz zu gewährleisten. 4. Das Cache -System reduziert Datenbankabfragen und verbessert die Reaktionsgeschwindigkeit. 5. Das Warteschlangensystem verarbeitet effektiv große Daten, vermeiden Sie die Blockierung von Benutzeranfragen und verbessern die Gesamtleistung.

Die Backend -Funktionen von Laravel: Datenbanken, Logik und mehrDie Backend -Funktionen von Laravel: Datenbanken, Logik und mehrApr 14, 2025 am 12:04 AM

Laravel spielt stark in der Back-End-Entwicklung und vereinfacht die Datenbankoperationen durch eloquentorm, Controller und Serviceklassen über die Geschäftslogik und die Bereitstellung von Warteschlangen, Ereignissen und anderen Funktionen. 1) Eloquentorm Maps -Datenbanktabellen über das Modell, um die Abfrage zu vereinfachen. 2) Die Geschäftslogik wird in Controllern und Serviceklassen verarbeitet, um die Modularität und Wartbarkeit zu verbessern. 3) Andere Funktionen wie Warteschlangensysteme tragen dazu bei, komplexe Anforderungen zu erfüllen.

See all articles

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Chat -Befehle und wie man sie benutzt
1 Monate vorBy尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 Englische Version

SublimeText3 Englische Version

Empfohlen: Win-Version, unterstützt Code-Eingabeaufforderungen!

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

MantisBT

MantisBT

Mantis ist ein einfach zu implementierendes webbasiertes Tool zur Fehlerverfolgung, das die Fehlerverfolgung von Produkten unterstützen soll. Es erfordert PHP, MySQL und einen Webserver. Schauen Sie sich unsere Demo- und Hosting-Services an.

VSCode Windows 64-Bit-Download

VSCode Windows 64-Bit-Download

Ein kostenloser und leistungsstarker IDE-Editor von Microsoft