Menu
Coddy logo textTech

Programación defensiva

Parte de la sección Lógica y Flujo del Journey de C# de Coddy. Lección 34 de 66.

La programación defensiva es una técnica que ayuda a prevenir errores causados por referencias nulas. Consiste en comprobar si hay valores nulos antes de intentar utilizar objetos.

Comprueba si es null antes de usar un objeto:

string name = GetNameFromSomewhere();

// Verificación defensiva
if (name == null)
{
    // Manejar el caso nulo
    name = "Default Name";
}

// Ahora es seguro usar name
Console.WriteLine(name.ToUpper());

Valida los parámetros en los métodos:

public void ProcessOrder(Order order)
{
    // Comprobación defensiva del parámetro null
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Ahora es seguro procesar el pedido
    Console.WriteLine("Processing order: " + order.Id);
}

Usa el operador de acceso condicional (?.) para realizar comprobaciones de null más limpias:

Customer customer = GetCustomerFromSomewhere();

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

// Usa esto:
string city = customer?.Address?.City;
challenge icon

Desafío

Fácil

Crea un método llamado ProcessUserData que acepte un parámetro de cadena userData. El método debe:

  1. Comprobar si userData es null; si lo es, imprimir "Error: User data is null" y devolver.
  2. Comprobar si userData está vacío; si lo está, imprimir "Error: User data is empty" y devolver.
  3. Si los datos son válidos, convertirlos a mayúsculas e imprimir "Processing: [UPPERCASE_DATA]".

Pruébalo tú mismo

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // Pista: la cadena "null" debe tratarse como un valor null real
        
        // Escribe tu código aquí
    }
}
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo

Practica por tu cuenta: Compilador de C# online