0Pricing
C# Academy · Урок

Простая диагностика: исключения и проверки условий

Применяйте проверки условий для ожидаемых некорректных входных данных, выбрасывайте исключения при исключительных состояниях и используйте try/catch для корректной обработки ошибок.

«Простая диагностика: исключения и проверки условий» — бесплатный урок C# Academy на CoddyKit. Это урок 3 из 3. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения C# Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс C# Academy содержит 3 уроков всего.

Обзор диагностики

Цель: использовать защитные проверки для ожидаемых проблем, а исключения — для редких серьезных проблем.

Пример защитной проверки

Защитные проверки возвращают состояние вместо создания исключения для часто встречающихся недопустимых входных данных.

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);
  }
}

Пример исключения

Исключения останавливают выполнение, если их не обработать. Используйте их для неожиданных или серьезных ситуаций.

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);
    }
  }
}

Сочетание проверок и исключений

Сочетайте подходы: защитные проверки используйте для обычной проверки данных, а исключения — для недопустимых состояний.

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);
    }
  }
}

Пример try/catch

Используйте try/catch, чтобы обрабатывать исключения и не допускать остановки программы.

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);
    }
  }
}

Советы

Советы:

  • Защитные проверки возвращают безопасные значения по умолчанию в распространенных случаях.
  • Исключения должны быть редкими и содержательными.
  • Перехватывайте только те исключения, которые можете обработать.

Защитная проверка или исключение

Быстрая проверка: когда защитным проверкам следует предпочесть создание исключений?

Итоги

Итоги: используйте защитные проверки для распространенных недопустимых входных данных, создавайте исключения для исключительных состояний и обрабатывайте их с помощью try/catch, когда восстановление возможно.

Часто задаваемые вопросы

Урок «Простая диагностика: исключения и проверки условий» бесплатный?

Да — полный текст урока «Простая диагностика: исключения и проверки условий» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс C# Academy, подпишись на CoddyKit PRO. Курс C# Academy содержит 3 уроков всего.

Чему я научусь в уроке «Простая диагностика: исключения и проверки условий»?

Применяйте проверки условий для ожидаемых некорректных входных данных, выбрасывайте исключения при исключительных состояниях и используйте try/catch для корректной обработки ошибок. Ты практикуешь C# Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать C# Academy?

Предыдущий опыт не требуется. C# Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 3.

Сколько времени занимает урок «Простая диагностика: исключения и проверки условий»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке C# Academy?

Да. Каждый урок C# Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. if/else, классический switch и циклы: for, while, do, foreach
  2. break/continue; goto (избегайте); область действия; исключения и проверки условий
  3. Простая диагностика: исключения и проверки условий
← Назад к C# Academy