Menu
Coddy logo textTech

Defensive Programming

Teil des Abschnitts Logik & Ablauf der C#-Journey von Coddy — Lektion 34 von 66.

Defensive Programmierung ist eine Technik, die hilft, Fehler zu verhindern, die durch Null-Referenzen verursacht werden. Sie umfasst das Überprüfen auf Null-Werte, bevor versucht wird, Objekte zu verwenden.

Prüfen Sie auf null, bevor Sie ein Objekt verwenden:

string name = GetNameFromSomewhere();

// Defensive check
if (name == null)
{
    // Handle the null case
    name = "Default Name";
}

// Now it's safe to use name
Console.WriteLine(name.ToUpper());

Parameter in Methoden validieren:

public void ProcessOrder(Order order)
{
    // Defensiver Check für null-Parameter
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Jetzt sicher, die Bestellung zu verarbeiten
    Console.WriteLine("Processing order: " + order.Id);
}

Verwenden Sie den bedingten Zugriffsoperator (?.) für sauberere Null-Überprüfungen:

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

Aufgabe

Einfach

Erstellen Sie eine Methode namens ProcessUserData, die einen String-Parameter userData akzeptiert. Die Methode sollte:

  1. userData auf null überprüfen – falls es null ist, "Error: User data is null" ausgeben und returnieren.
  2. userData auf leer überprüfen – falls es leer ist, "Error: User data is empty" ausgeben und returnieren.
  3. Falls die Daten gültig sind, sie in Großbuchstaben umwandeln und "Processing: [UPPERCASE_DATA]" ausgeben.

Spickzettel

Defensives Programmieren verhindert Fehler, indem es vor der Verwendung von Objekten auf Null-Werte prüft.

Prüfen Sie auf null, bevor Sie ein Objekt verwenden:

string name = GetNameFromSomewhere();

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

Console.WriteLine(name.ToUpper());

Validieren Sie Parameter in Methoden:

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

Verwenden Sie den bedingten Zugriffsoperator (?.) für sauberere Null-Prüfungen:

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

Probier es selbst

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // Hinweis: der String "null" sollte als tatsächlicher Null-Wert behandelt werden
        
        // Schreibe deinen Code hier
    }
}
quiz iconTeste dich selbst

Diese Lektion enthält ein kurzes Quiz. Starte die Lektion, um es zu beantworten und deinen Fortschritt zu speichern.

Alle Lektionen in Logik & Ablauf