C# Academy · Aula

Diagnósticos simples: exceções versus verificações de proteção

Aplique verificações de proteção para entradas inválidas esperadas, lance exceções para estados excepcionais e use try/catch para tratar erros de maneira adequada.

Aula 3 de 38 etapas

Diagnósticos simples: exceções versus verificações de proteção é uma aula grátis de C# Academy no CoddyKit. Esta é a aula 3 de 3. Você pode ler a aula completa abaixo gratuitamente — depois pratica ao vivo no navegador com um editor de código integrado e um tutor de IA 24/7. Faz parte do caminho de aprendizado de C# Academy, e seu progresso é sincronizado entre a web e o app CoddyKit. O curso de C# Academy inclui 3 aulas no total.

Visão geral do diagnóstico

Objetivo: Use verificações de proteção para problemas esperados e exceções para situações raras e graves.

Demonstração de verificação de proteção

Verificações de proteção retornam um status em vez de lançar uma exceção para entradas inválidas comuns.

using System;

public class Program
{
  public static bool TryDivide(int a, int b, out int result)
  {
    if (b == 0)
    {
      result = 0;
      return false; // guard check fails
    }
    result = a / b;
    return true;
  }

  public static void Main(string[] args)
  {
    int r;
    bool ok = TryDivide(10, 0, out r);
    Console.WriteLine("ok=" + ok + " result=" + r);
  }
}

Demonstração de exceção

Exceções interrompem a execução, a menos que sejam tratadas. Use-as para condições inesperadas ou graves.

using System;

public class Program
{
  public static int PriceWithTax(int price, int ratePercent)
  {
    if (price < 0)
    {
      throw new ArgumentOutOfRangeException("price");
    }
    if (ratePercent < 0 || ratePercent > 100)
    {
      throw new ArgumentOutOfRangeException("ratePercent");
    }
    return price + (price * ratePercent / 100);
  }

  public static void Main(string[] args)
  {
    try
    {
      int total = PriceWithTax(100, 20);
      Console.WriteLine("Total=" + total);
    }
    catch (Exception ex)
    {
      Console.WriteLine("Error: " + ex.Message);
    }
  }
}

Combinando verificações e exceções

Combine as abordagens: use verificações de proteção para validações rotineiras e exceções para estados inválidos.

using System;

public class Program
{
  public static bool TryParsePrice(string text, out int value)
  {
    return int.TryParse(text, out value); // guard check
  }

  public static int GetDiscount(int code)
  {
    if (code < 0) throw new ArgumentException("Invalid code"); // exception
    return 10;
  }

  public static void Main(string[] args)
  {
    int v;
    if (TryParsePrice("123", out v))
    {
      Console.WriteLine("Parsed " + v);
    }

    try
    {
      int d = GetDiscount(-1);
      Console.WriteLine("Discount=" + d);
    }
    catch (Exception ex)
    {
      Console.WriteLine("Error: " + ex.Message);
    }
  }
}

Exemplo de try/catch

Use try/catch para tratar exceções e manter o programa em execução.

using System;

public class Program
{
  public static void Main(string[] args)
  {
    try
    {
      int x = 10;
      int y = 0;
      int z = x / y; // will throw DivideByZeroException
      Console.WriteLine(z);
    }
    catch (DivideByZeroException ex)
    {
      Console.WriteLine("Cannot divide by zero: " + ex.Message);
    }
  }
}

Dicas

Dicas:

  • As verificações de proteção retornam valores padrão seguros em casos comuns.
  • As exceções devem ser raras e significativas.
  • Capture apenas aquilo que você consegue tratar.

Verificação de proteção ou exceção

Verificação rápida: Quando você deve preferir verificações de proteção a lançar exceções?

Recapitulação

Recapitulação: Use verificações de proteção para entradas inválidas comuns, lance exceções para estados excepcionais e trate-as com try/catch quando for possível recuperar-se.

Grátis para começar

Aprenda C# com um tutor de IA — grátis

Escreva e execute código real no seu navegador, obtenha ajuda instantânea de um tutor de IA 24/7 e continue de onde parou na web ou no app.

Cursos
93
Aulas
346

Perguntas Frequentes

A aula “Diagnósticos simples: exceções versus verificações de proteção” é grátis?

Sim — o texto completo de “Diagnósticos simples: exceções versus verificações de proteção” é grátis para ler aqui na web. Para praticá-la interativamente (um editor de código integrado e um tutor de IA 24/7) e desbloquear o restante do curso de C# Academy, atualize para CoddyKit PRO. O curso de C# Academy inclui 3 aulas no total.

O que vou aprender em “Diagnósticos simples: exceções versus verificações de proteção”?

Aplique verificações de proteção para entradas inválidas esperadas, lance exceções para estados excepcionais e use try/catch para tratar erros de maneira adequada. Você pratica C# Academy com código prático que executa diretamente no navegador, e um tutor de IA 24/7 responde suas dúvidas enquanto trabalha na aula.

Preciso ter experiência prévia para começar C# Academy?

Nenhuma experiência prévia é necessária. C# Academy no CoddyKit é estruturado para alunos iniciantes até avançados, então você pode começar aqui ou desde o início e aprender no seu ritmo. Esta é a aula 3 de 3.

Quanto tempo leva a aula “Diagnósticos simples: exceções versus verificações de proteção”?

A maioria das aulas CoddyKit leva cerca de 5–10 minutos. Cada uma é compacta e interativa, então você faz progresso constante e retoma exatamente de onde parou entre web e app.

Posso escrever e executar código nesta aula de C# Academy?

Sim. Cada aula de C# Academy inclui um editor de código integrado, então você escreve e executa código real direto no navegador e recebe feedback de IA instantaneamente — nenhuma configuração local necessária.

Todas as aulas deste curso

  1. if/else, switch (clássico) e loops: for, while, do, foreach
  2. break/continue; goto (evite); escopo; exceções versus verificações de proteção
  3. Diagnósticos simples: exceções versus verificações de proteção
← Voltar para C# Academy