Menu
Coddy logo textTech

Programação Defensiva

Parte da seção Lógica & Fluxo do Journey de C# da Coddy. Lição 34 de 66.

A programação defensiva é uma técnica que ajuda a prevenir erros causados por referências null. Ela envolve verificar se há valores null antes de tentar usar objetos.

Verifique se há um valor nulo antes de usar um objeto:

string name = GetNameFromSomewhere();

// Verificação defensiva
if (name == null)
{
    // Trata o caso null
    name = "Default Name";
}

// Agora é seguro usar name
Console.WriteLine(name.ToUpper());

Valide os parâmetros nos métodos:

public void ProcessOrder(Order order)
{
    // Verificação defensiva para parâmetro nulo
    if (order == null)
    {
        Console.WriteLine("Error: Order cannot be null");
        return;
    }
    
    // Agora é seguro processar o pedido
    Console.WriteLine("Processing order: " + order.Id);
}

Use o operador de acesso condicional (?.) para verificações de null mais limpas:

Customer customer = GetCustomerFromSomewhere();

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

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

Desafio

Fácil

Crie um método chamado ProcessUserData que aceite um parâmetro de string userData. O método deve:

  1. Verificar se userData é nulo — se for, imprimir "Error: User data is null" e retornar.
  2. Verificar se userData está vazio — se estiver, imprimir "Error: User data is empty" e retornar.
  3. Se os dados forem válidos, convertê-los para maiúsculas e imprimir "Processing: [UPPERCASE_DATA]".

Experimente você mesmo

using System;

class ProcessUserData
{
    public static void processUserData(string userData)
    {
        // Dica: a string "null" deve ser tratada como um valor null de fato
        
        // Escreva seu código aqui
    }
}
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo

Pratique por conta própria: Compilador de C# online