Menu
Coddy logo textTech

Programmation défensive

Fait partie de la section Logique & Flux du Journey C# de Coddy — leçon 34 sur 66.

La programmation défensive est une technique qui aide à prévenir les erreurs causées par des références nulles. Elle consiste à vérifier les valeurs nulles avant de tenter d'utiliser des objets.

Vérifiez si l'objet est null avant de l'utiliser :

string name = GetNameFromSomewhere();

// Vérification défensive
if (name == null)
{
    // Gérer le cas null
    name = "Default Name";
}

// Maintenant, il est sûr d'utiliser name
Console.WriteLine(name.ToUpper());

Valider les paramètres dans les méthodes :

public void ProcessOrder(Order order)
{
    // Vérification défensive pour le paramètre null
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Maintenant sûr de traiter la commande
    Console.WriteLine("Processing order: " + order.Id);
}

Utilisez l'opérateur d'accès conditionnel (?.) pour des vérifications de null plus propres :

Customer customer = GetCustomerFromSomewhere();

// Instead of:
// string city = null;
// if (customer != null && customer.Address != null)
// {
//     city = customer.Address.City;
// }

// Use this:
string city = customer?.Address?.City;
challenge icon

Défi

Facile

Créez une méthode nommée ProcessUserData qui accepte un paramètre de type string userData. La méthode doit :

  1. Vérifiez si userData est null - si c'est le cas, affichez "Error: User data is null" et retournez.
  2. Vérifiez si userData est vide - si c'est le cas, affichez "Error: User data is empty" et retournez.
  3. Si les données sont valides, convertissez-les en majuscules et affichez "Processing: [UPPERCASE_DATA]".

Aide-mémoire

La programmation défensive prévient les erreurs en vérifiant les valeurs nulles avant d'utiliser des objets.

Vérifiez null avant d'utiliser un objet :

string name = GetNameFromSomewhere();

if (name == null)
{
    name = "Default Name";
}

Console.WriteLine(name.ToUpper());

Validez les paramètres dans les méthodes :

public void ProcessOrder(Order order)
{
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    Console.WriteLine("Processing order: " + order.Id);
}

Utilisez l'opérateur d'accès conditionnel (?.) pour des vérifications null plus propres :

Customer customer = GetCustomerFromSomewhere();
string city = customer?.Address?.City;

Essayez vous-même

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // Indice : la chaîne "null" doit être traitée comme une valeur null réelle
        
        // Écrivez votre code ici
    }
}
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux