11 Les Bases de Laravel 11 : Gestion des Erreurs

Lorsque vous demarrez un nouveau projet Laravel, la gestion des erreurs et des exceptions est deja configuree pour vous. La classe App\Exceptions\Handler est l'endroit ou toutes les exceptions lancees par votre application sont enregistrees puis rendues a l'utilisateur.
Configuration
L'option debug dans votre fichier de configuration config/app.php determine la quantite d'informations sur une erreur qui est affichee a l'utilisateur. Par defaut, cette option est configuree pour respecter la valeur de la variable d'environnement APP_DEBUG:
APP_DEBUG=true # Pour le developpement
APP_DEBUG=false # Pour la productionReporter les Exceptions
Le reporting d'exceptions est utilise pour logger les exceptions ou les envoyer a un service externe comme Sentry ou Flare. Par defaut, les exceptions sont loggees selon votre configuration de logging.
// bootstrap/app.php
use App\Exceptions\InvalidOrderException;
->withExceptions(function (Exceptions $exceptions) {
$exceptions->report(function (InvalidOrderException $e) {
// Logique de reporting personnalisee
});
})Arreter le Reporting pour Certains Types
->withExceptions(function (Exceptions $exceptions) {
$exceptions->dontReport([
InvalidOrderException::class,
]);
})Rendre les Exceptions
Par defaut, le gestionnaire d'exceptions Laravel convertira les exceptions en une reponse HTTP pour vous. Cependant, vous pouvez enregistrer une closure de rendu personnalisee pour les exceptions d'un type donne:
->withExceptions(function (Exceptions $exceptions) {
$exceptions->render(function (InvalidOrderException $e, Request $request) {
return response()->view('errors.invalid-order', [], 500);
});
})Reponses JSON pour l'API
->withExceptions(function (Exceptions $exceptions) {
$exceptions->render(function (InvalidOrderException $e, Request $request) {
if ($request->expectsJson()) {
return response()->json([
'error' => 'Commande invalide',
'message' => $e->getMessage(),
], 500);
}
});
})Exceptions HTTP
Certaines exceptions decrivent des codes d'erreur HTTP du serveur. Vous pouvez creer des reponses personnalisees pour des codes de statut HTTP specifiques:
abort(404);
abort(403, 'Non autorise');Pages d'Erreur Personnalisees
Creez des vues personnalisees pour les pages d'erreur:
<!-- resources/views/errors/404.blade.php -->
@extends('layouts.app')
@section('content')
<h1>Page Non Trouvee</h1>
<p>Desole, la page que vous recherchez n existe pas.</p>
@endsectionExceptions de Validation
Quand la validation echoue, Laravel lance automatiquement une ValidationException:
$validated = $request->validate([
'email' => 'required|email',
'password' => 'required|min:8',
]);En savoir plus sur la gestion des erreurs dans Laravel depuis la documentation officielle.
Conclusion
La gestion des erreurs dans Laravel fournit une maniere elegante et unifiee de gerer les exceptions dans votre application. En personnalisant le gestionnaire d'exceptions, vous pouvez controler comment les erreurs sont reportees et rendues aux utilisateurs.
Bon codage avec Laravel 11!
Discutez de votre projet avec nous
Nous sommes ici pour vous aider avec vos besoins en développement Web. Planifiez un appel pour discuter de votre projet et comment nous pouvons vous aider.
Trouvons les meilleures solutions pour vos besoins.
Articles connexes

Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires
Demarrer avec Laravel 11 : Installation, Configuration et Structure des Repertoires

10 Les Bases de Laravel 11 : Bundling d'Assets
Apprenez les essentiels du bundling d'assets dans Laravel 11 avec Vite, couvrant l'installation, la configuration et des exemples pratiques pour le developpement web.

9 Les Bases de Laravel 11 : Templates Blade
Apprenez les essentiels des Templates Blade dans Laravel 11, en vous concentrant sur les fonctionnalites cles et des exemples pratiques pour ameliorer vos competences en developpement web.