Leçon 16 - Debug et Débogage

30 minutes Avancé P3 - Bonnes pratiques

Apprenez les techniques essentielles pour identifier et corriger les bugs dans votre code.

Qu'est-ce que le débogage ?

Le débogage consiste à trouver et corriger les erreurs dans votre code. Les bugs peuvent être des erreurs de logique, de calcul, ou des plantages.

Méthode 1 : Console.WriteLine

La méthode la plus simple pour vérifier les valeurs :

C#
static double CelsiusVersFahrenheit(double celsius) { Console.WriteLine($"[DEBUG] Entrée: {celsius}°C"); double fahrenheit = (celsius * 9/5) + 32; Console.WriteLine($"[DEBUG] Sortie: {fahrenheit}°F"); return fahrenheit; }

Méthode 2 : Logger simple

Créez un système de log pour mieux organiser vos messages de debug :

C#
static class Logger { public static void Debug(string message) { Console.ForegroundColor = ConsoleColor.Gray; Console.WriteLine($"[DEBUG] {message}"); Console.ResetColor(); } public static void Error(string message) { Console.ForegroundColor = ConsoleColor.Red; Console.WriteLine($"[ERROR] {message}"); Console.ResetColor(); } public static void Info(string message) { Console.WriteLine($"[INFO] {message}"); } } // Utilisation static void Diviser(double a, double b) { Logger.Info($"Division de {a} par {b}"); if (b == 0) { Logger.Error("Division par zéro !"); return; } double resultat = a / b; Logger.Debug($"Résultat: {resultat}"); }

Méthode 3 : Try-Catch pour trouver les erreurs

Utilisez try-catch pour capturer et analyser les erreurs :

C#
static void TesterCalcul() { try { Console.Write("Entrez un nombre: "); string input = Console.ReadLine(); Logger.Debug($"Input reçu: '{input}'"); int nombre = int.Parse(input); int resultat = 100 / nombre; Console.WriteLine($"Résultat: {resultat}"); } catch (FormatException ex) { Logger.Error($"Format invalide: {ex.Message}"); } catch (DivideByZeroException) { Logger.Error("Division par zéro détectée"); } }
🐛 Conseils de débogage :
  • Reproduisez le bug : Trouvez comment déclencher l'erreur
  • Isolez le problème : Testez section par section
  • Vérifiez les valeurs : Utilisez Console.WriteLine ou Logger
  • Lisez les messages d'erreur : Ils donnent souvent la solution

Exercice pratique

Déboguez cette fonction qui calcule un prix avec remise :

C#
// ❌ Code avec bug static decimal CalculerPrixFinal(decimal prix, decimal remise) { decimal prixFinal = prix - remise; // Bug ici! return prixFinal; }