Menu
Coddy logo textTech

Programowanie defensywne

Część sekcji Logika i sterowanie przepływem ścieżki C# w Coddy. Lekcja 34 z 66.

Programowanie defensywne to technika, która pomaga zapobiegać błędom spowodowanym przez odwołania null. Polega na sprawdzaniu, czy wartości są null, przed próbą użycia obiektów.

Przed użyciem obiektu sprawdź, czy ma wartość null:

string name = GetNameFromSomewhere();

// Kontrola zabezpieczająca
if (name == null)
{
    // Obsłuż przypadek wartości null
    name = "Default Name";
}

// Teraz można bezpiecznie użyć name
Console.WriteLine(name.ToUpper());

Weryfikuj parametry w metodach:

public void ProcessOrder(Order order)
{
    // Kontrola zabezpieczająca przed parametrem o wartości null
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Teraz można bezpiecznie przetworzyć zamówienie
    Console.WriteLine("Processing order: " + order.Id);
}

Użyj operatora warunkowego dostępu (?.), aby uprościć sprawdzanie wartości null:

Customer customer = GetCustomerFromSomewhere();

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

// Użyj tego:
string city = customer?.Address?.City;
challenge icon

Wyzwanie

Łatwy

Utwórz metodę o nazwie ProcessUserData, która przyjmuje parametr będący ciągiem znaków userData. Metoda powinna:

  1. Sprawdzić, czy userData ma wartość null — jeśli tak, wypisać "Error: User data is null" i zakończyć działanie.
  2. Sprawdzić, czy userData jest pusty — jeśli tak, wypisać "Error: User data is empty" i zakończyć działanie.
  3. Jeśli dane są prawidłowe, zamienić je na wielkie litery i wypisać "Processing: [UPPERCASE_DATA]".

Spróbuj swoich sił

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // Wskazówka: ciąg znaków "null" należy traktować jak rzeczywistą wartość null
        
        // Wpisz tutaj swój kod
    }
}
quiz iconSprawdź się

Ta lekcja zawiera krótki quiz. Zacznij lekcję, żeby na niego odpowiedzieć i śledzić swoje postępy.

Wszystkie lekcje w sekcji Logika i sterowanie przepływem

Poćwicz samodzielnie: Kompilator C# online