Implémenter une gestion des erreurs robuste en Node.js
Créez une architecture de gestion des erreurs Node.js professionnelle avec classes d'erreurs custom, middleware centralisé et monitoring.
Coller dans votre IA
Collez ce prompt dans ChatGPT, Claude ou Gemini et personnalisez les variables entre crochets.
Tu es un expert Node.js spécialisé dans la création d'applications robustes et résilientes. Je dois implémenter une gestion des erreurs professionnelle dans mon application.
**Contexte de l'application :**
- Framework : [EX: Express 4, Fastify, Koa, NestJS]
- Type d'application : [EX: API REST, application web fullstack, microservice]
- Sources d'erreurs : [EX: base de données PostgreSQL, APIs tierces Stripe/Sendgrid, système de fichiers]
- Logging actuel : [EX: console.log, Winston, Pino]
- Monitoring : [EX: Sentry, Datadog, aucun]
**Problèmes actuels :**
[DÉCRIRE_LES_PROBLÈMES: ex. erreurs non capturées qui crashent l'app, pas de distinction erreur métier/technique, logs insuffisants]
Implémente une stratégie de gestion des erreurs complète :
1. **Hiérarchie de classes d'erreurs** : crée une classe AppError de base et des classes spécialisées (ValidationError, NotFoundError, UnauthorizedError, DatabaseError, ExternalServiceError) avec codes d'erreur standardisés.
2. **Middleware de gestion des erreurs** : middleware Express centralisé qui normalise toutes les erreurs, formate les réponses JSON et gère différemment les erreurs opérationnelles et les bugs.
3. **Capture des erreurs non gérées** : gestion des process.on('uncaughtException') et process.on('unhandledRejection') avec graceful shutdown.
4. **Logging structuré** : format JSON avec correlation ID, stack trace en développement uniquement, séparation des niveaux de log.
5. **Intégration monitoring** : configuration Sentry ou équivalent avec contexte utilisateur et release tracking.
6. **Tests** : tests unitaires pour la hiérarchie d'erreurs et le middleware.Pourquoi ce prompt fonctionne
<p>Ce prompt distingue intelligemment les erreurs opérationnelles (prévisibles, gérables : utilisateur non trouvé, validation échouée) des erreurs de programmation (bugs imprévus : undefined is not a function). Cette distinction est fondamentale pour décider de la stratégie de recovery : retry pour les premières, alert et redémarrage pour les secondes.</p><p>La création d'une hiérarchie de classes d'erreurs avec des codes standardisés est une pratique de développement professionnel qui permet aux clients de l'API de gérer les erreurs de manière programmatique plutôt que de parser des messages texte. C'est la base d'une API robuste.</p><p>L'inclusion de la gestion des uncaughtException et unhandledRejection avec graceful shutdown est souvent omise par les développeurs Node.js juniors, mais elle est critique en production pour éviter les états corrompus et garantir que les requêtes en cours se terminent proprement.</p>
Cas d'usage
Résultat attendu
Hiérarchie de classes d'erreurs, middleware Express, gestion des erreurs non capturées, configuration de logging et intégration monitoring.
Formez-vous en profondeur
Découvrez le skill complet sur Prompt Guide pour maîtriser cette technique de A à Z.
Voir sur Prompt GuideTermes du glossaire
📬 Recevez de nouveaux prompts chaque semaine
Rejoignez notre newsletter et ne manquez aucun prompt.
Prompts similaires
Prompt pour débugger votre code Python avec ChatGPT
Un prompt structuré pour obtenir une analyse complète de vos bugs Python : identification, explication de la cause racine, correction commentée et conseils de prévention.
Prompt pour écrire des scripts Bash professionnels et robustes
Un prompt complet pour générer des scripts Bash robustes et professionnels, avec gestion d'erreurs, parsing d'arguments et bonnes pratiques intégrées.
Écrire des tests unitaires complets
Générez une suite de tests unitaires exhaustive couvrant les cas nominaux, les cas limites et les erreurs avec des mocks appropriés.
Créer un composant React accessible
Créez des composants React pleinement accessibles respectant WCAG 2.1 avec navigation clavier, ARIA et support des lecteurs d'écran.