Простая диагностика: исключения и проверки условий
Применяйте проверки условий для ожидаемых некорректных входных данных, выбрасывайте исключения при исключительных состояниях и используйте 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 — локальная установка не требуется.
Все уроки этого курса
- if/else, классический switch и циклы: for, while, do, foreach
- break/continue; goto (избегайте); область действия; исключения и проверки условий
- Простая диагностика: исключения и проверки условий