Inhaltsverzeichnis
1. Verstehen Sie den Ausnahmebehandler
2. Umgang mit HTTP -Ausnahmen (404, 403, 500 usw.)
3.. Umgang mit Validierungsausnahmen
4. Werfen und Handling benutzerdefinierte Ausnahmen
5. Protokollierungsausnahmen
6. Globale Fehlerbehandlung mit App::error() (Vermächtnis)
Zusammenfassung
Heim PHP-Framework Laravel Wie gehe ich mit Fehlern und Ausnahmen in Laravel um?

Wie gehe ich mit Fehlern und Ausnahmen in Laravel um?

Aug 02, 2025 pm 03:30 PM

Laravel behandelt Fehler über die APP \ AUSBILDUNGS \ Handler -Klasse, wobei die Berichtsprotokolle der Report () -Protokolle und render () sie in HTTP -Antworten umwandeln. 2. Passen Sie Fehlerseiten an, indem Sie Blade -Ansichten in Ressourcen/Ansichten/Fehlern/für HTTP -Statuscodes wie 404, 403 und 500 erstellen. 3. Die Validierungsausnahmen werden automatisch behandelt. Anpassen über fehlgeschlagene Validierung in Formularanfragen. 4. Erstellen Sie benutzerdefinierte Ausnahmen mit Php Artisan Make: Ausnahme und behandeln Sie sie in der Render -Methode von Handler.php. 5. Ausnahmen werden automatisch über config/logging.php protokolliert. Verwenden Sie Protokoll :: error () für manuelle Protokollierung und integrieren Sie Tools wie Sentry oder Bugsnag für eine erweiterte Überwachung. 6. Vermeiden Sie Legacy App :: error (); Verwenden Sie stattdessen Handlerklasse. Laravel bietet die volle Kontrolle über Fehlerbehandlungen - starten Sie in Handler.php und erweitern Sie sie nach Bedarf.

Wie gehe ich mit Fehlern und Ausnahmen in Laravel um?

Die Handhabungsfehler und Ausnahmen in Laravel sind dank seines integrierten Ausnahmebehandungssystems unkompliziert. Laravel verwendet die App\Exceptions\Handler -Klasse, um alle Ausnahmen zu verwalten, sodass Sie anpassen können, wie Fehler gemeldet und wiedergegeben werden.

Wie gehe ich mit Fehlern und Ausnahmen in Laravel um?

Hier erfahren Sie, wie Sie in Laravel effektiv Fehler und Ausnahmen in Laravel behandeln können:


1. Verstehen Sie den Ausnahmebehandler

Alle Ausnahmen durchlaufen die App\Exceptions\Handler -Klasse. Diese Klasse hat zwei Hauptmethoden:

Wie gehe ich mit Fehlern und Ausnahmen in Laravel um?
  • report() - Wird verwendet, um die Ausnahme an einen externen Dienst zu protokollieren oder an einen externen Dienst zu senden (wie Sentry oder Bugsnag).
  • render() - Umwandelt die Ausnahme in eine an den Benutzer zurückgesandte HTTP -Antwort.
 öffentlicher Funktionsbericht (Ausnahme $ Ausnahme)
{
    if ($ Ausnahmeinstanz von CustomException) {
        // externe Dienst anmelden oder benachrichtigen
        \ Log :: error ($ exception-> getMessage ());
    }

    Elternteil :: Bericht ($ Ausnahme);
}

Öffentliche Funktion Render ($ Anfrage, Ausnahme $ Ausnahme)
{
    if ($ Exception Instance von modelNotFoundException) {{
        return response ()-> json (['error' => 'Ressource nicht gefunden'], 404);
    }

    Return Parent :: Render ($ Request, $ Ausnahme);
}

Sie können beide Methoden so anpassen, dass bestimmte Ausnahmen unterschiedlich behandelt werden.


2. Umgang mit HTTP -Ausnahmen (404, 403, 500 usw.)

Laravel behandelt automatisch gemeinsame HTTP -Ausnahmen. Zum Beispiel:

Wie gehe ich mit Fehlern und Ausnahmen in Laravel um?
  • Ein 404 Not Found wird geworfen, wenn eine Route oder ein Modell nicht gefunden wird.
  • Verwenden Sie abort(404) in Ihren Controllern, um einen 404 -Fehler auszulösen.

Zum Anpassen von Fehlerseiten:

  • Erstellen Sie Blade -Ansichten in resources/views/errors/ :
    • 404.blade.php
    • 500.blade.php
    • 403.blade.php

Laravel zeigt diese automatisch basierend auf dem HTTP -Statuscode an.


3.. Umgang mit Validierungsausnahmen

Bei Verwendung von Formularanfragen oder validate() Helfer löst Laravel eine ValidationException aus, wenn die Validierung fehlschlägt.

Normalerweise müssen Sie diese nicht manuell fangen - sie werden automatisch in eine Umleitung oder JSON -Antwort mit Fehlermeldungen umgewandelt.

Beispiel in einem Controller:

 $ request-> validate ([
    'E -Mail' => 'Erforderlich | E -Mail',
    'Name' => 'Erforderlich | String | max: 255'
]);

Wenn die Validierung fehlschlägt:

  • Für API -Anfragen: Gibt eine JSON -Antwort mit 422 Status- und Fehlerdetails zurück.
  • Für Webanfragen: Umleitet mit Eingaben und Fehlern zurück.

Um die Validierungsantworten (insbesondere für APIs) anzupassen, überschreiben Sie die failedValidation Validationsmethode in einer Formularanforderung:

 geschützte Funktion fehlgeschlagen Validation (Validator $ Validator)
{
    Neue httpresponsexception (response ()-> json ([[
        'fehler' => $ validator-> fehler (),
    ], 422));
}

4. Werfen und Handling benutzerdefinierte Ausnahmen

Sie können benutzerdefinierte Ausnahmen erstellen mit:

 PHP Artisan Make: AUCECT PAGEMENTFAILEDException

Dadurch wird eine Klasse in app/Exceptions/PaymentFailedException.php erstellt.

Dann werfen Sie es in Ihren Code:

 Neue PaymentFailedException werfen ('Zahlung wurde abgelehnt.');

Behandeln Sie es im Handler.php :

 Öffentliche Funktion Render ($ Anfrage, Ausnahme $ Ausnahme)
{
    if ($ Ausnahmeinstanz von paymentFailedException) {
        return response ()-> json (['error' => $ exception-> getMessage ()], 500);
    }

    Return Parent :: Render ($ Request, $ Ausnahme);
}

5. Protokollierungsausnahmen

Standardmäßig protokolliert Laravel alle Ausnahmen mit dem in config/logging.php konfigurierten Protokollierungskanal.

Sie können Ausnahmen manuell protokollieren:

 versuchen {
    // ein riskanter Code
} catch (Ausnahme $ e) {
    \ Log :: error ('Ausnahme ist aufgetreten:'. $ E-> getMessage ());
    // Handle oder Wiederholung
}

Für die Produktion in Betracht, Dienste zu integrieren wie:

  • Posten
  • Bugsnag
  • Raygun

Installieren Sie über Komponist und befolgen Sie ihre Laravel-Integrationsführer, um eine Echtzeit-Fehlerverfolgung zu erhalten.


6. Globale Fehlerbehandlung mit App::error() (Vermächtnis)

Hinweis: Diese Methode wurde in älteren Laravel -Versionen verwendet. Verwenden Sie in Laravel 5.0 stattdessen die Handler .


Zusammenfassung

  • Verwenden Sie Handler.php , um die Ausnahmebehandlung zu zentralisieren.
  • Passen Sie Fehlerseiten mit Klingenvorlagen in resources/views/errors .
  • Lassen Sie Laravel -Validierungsausnahmen automatisch behandeln oder passen Sie sie an.
  • Werfen und fangen Sie benutzerdefinierte Ausnahmen für Geschäftslogikfehler.
  • Protokollefehler und in Betracht ziehen, um die Tools von Drittanbietern für die Überwachung zu berücksichtigen.

Grundsätzlich gibt Ihnen Laravel die volle Kontrolle - starten Sie mit der Handler und bauen Sie von dort aus.

Das obige ist der detaillierte Inhalt vonWie gehe ich mit Fehlern und Ausnahmen in Laravel um?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

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.

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

PHP-Tutorial
1535
276
Was ist Konfigurationsputz in Laravel? Was ist Konfigurationsputz in Laravel? Jul 27, 2025 am 03:54 AM

Der Konfigurations -Cache von Laravel verbessert die Leistung, indem alle Konfigurationsdateien in eine einzelne Cache -Datei zusammengeführt werden. Das Aktivieren von Konfigurations -Cache in einer Produktionsumgebung kann die E/A -Vorgänge reduzieren und die Analyse bei jeder Anforderung an die Datei -Analyse beschleunigen, wodurch das Laden der Konfiguration beschleunigt wird. 1. Es sollte aktiviert werden, wenn die Anwendung bereitgestellt wird, die Konfiguration stabil ist und keine häufigen Änderungen erforderlich sind. 2. Nachdem Sie die Konfiguration ändern können, müssen Sie PhPartiSanconFig: Cache erneut ausführen, um wirksam zu werden. 3. Vermeiden Sie die Verwendung dynamischer Logik oder Verschluss, die von Laufzeitbedingungen in der Konfigurationsdatei abhängen. 4. Bei Problembehebungsproblemen sollten Sie zuerst den Cache löschen, die .env-Variablen und den Umrand-Cache überprüfen.

Verwenden der Übersetzerfassade zur Lokalisierung in Laravel. Verwenden der Übersetzerfassade zur Lokalisierung in Laravel. Jul 21, 2025 am 01:06 AM

ThetranslatorfacadeinlaravelisusedForLocalizationByFetchingTranslatedStringsandswitchinguGuagesatruntime

Wie verspottete ich Objekte in Laravel -Tests? Wie verspottete ich Objekte in Laravel -Tests? Jul 27, 2025 am 03:13 AM

UsemockeryForCustomDependenciesBysetTingTexectations-withOldreceive (). 2.Uselaravel'sFake () methodforfacadeslikemail, Queue, Andhtttptopreventrealinteractions.3.

Erklären Sie Laravel eloquent Scopes. Erklären Sie Laravel eloquent Scopes. Jul 26, 2025 am 07:22 AM

Laravels EloquentsCopes ist ein Tool, das die gemeinsame Abfragelogik in lokalem Umfang und globalem Umfang unterteilt. 1. Der lokale Bereich ist mit einer Methode definiert, die mit dem Umfang beginnt und muss explizit aufgerufen werden, z. B. Post :: veröffentlicht (); 2. Der globale Umfang wird automatisch auf alle Abfragen angewendet, häufig für Soft-Löschen oder Multi-Mieter-Systeme verwendet, und die Umfangsschnittstelle muss im Modell implementiert und registriert werden. 3. Das Zielfernrohr kann mit Parametern ausgestattet werden, z. B. nach Jahr oder Monat die Filterartikel, und entsprechende Parameter werden beim Aufrufen übergeben. 4. Achten Sie auf Namensschwerpunkte, Kettenaufrufe, vorübergehende Deaktivieren und Kombinationserweiterung, um die Klarheit und Wiederverwendbarkeit von Code zu verbessern.

Wie führe ich ein Laravel -Projekt aus? Wie führe ich ein Laravel -Projekt aus? Jul 28, 2025 am 04:28 AM

CheckPhp> = 8.1, Komponist und Webserver; 2.CloneOrCreateProjectandruncompoSerinstall; 3.Copy.Env.Exampleto.EnvandrunphPartisanny : generieren; 4.setDatabasecredentialsin.envandrunphPartisanmigrate-seed; 5.StartServerWithPartisanServe; 6.OptionallyRunnpminpmin

Wie implementieren Sie ein Überweisungssystem in Laravel? Wie implementieren Sie ein Überweisungssystem in Laravel? Aug 02, 2025 am 06:55 AM

Erstellen Sie Referenzen Tabelle, um Empfehlungsbeziehungen zu erfassen, einschließlich Empfehlungen, Empfehlungen, Empfehlungscodes und Nutzungszeit; 2. Definieren Sie die Beziehungen zwischen Hörern und Hasmany im Benutzermodell, um Empfehlungsdaten zu verwalten. 3. Erstellen Sie bei der Registrierung einen eindeutigen Empfehlungscode (kann durch Modellereignisse implementiert werden). 4. Erfassen Sie den Empfehlungscode, indem Sie die Parameter während der Registrierung abfragen, nach Überprüfung eine Empfehlungsbeziehung aufstellen und die Selbstverantwortung verhindern. 5. den Belohnungsmechanismus auslösen, wenn empfohlene Benutzer das angegebene Verhalten (Abonnementauftrag) abschließen; 6. Generieren Sie gemeinsame Empfehlungsverbindungen und verwenden Sie URLs mit Laravel Signature, um die Sicherheit zu verbessern. 7. Empfehlungsstatistiken auf dem Dashboard anzeigen, z. B. die Gesamtzahl der Empfehlungen und konvertierten Zahlen; Es ist notwendig, sicherzustellen, dass Datenbankbeschränkungen, Sitzungen oder Cookies bestehen bleiben.

Wie erstelle ich eine Helferdatei in Laravel? Wie erstelle ich eine Helferdatei in Laravel? Jul 26, 2025 am 08:58 AM

CreateAhelpers.phpfileinapp/helpers withcustomfunctionssformatprice, isactiveroute, andisadmin.2.addtheFiletothe "Dateien" AbschnittOfComposer

Wie implementieren Sie Feature -Flags in einer Laravel -App? Wie implementieren Sie Feature -Flags in einer Laravel -App? Jul 30, 2025 am 01:45 AM

ChooseseafatureFlagstrategyuchasconfig-basierte, datenbankgetriebene, orthird-partytools-ähnliche Flagsmith

See all articles