Защитное программирование
Часть раздела Логика и управление потоком путешествия по C# на Coddy. Урок 34 из 66.
Защитное программирование — это методика, которая помогает предотвращать ошибки, вызванные ссылками null. Она включает проверку значений null перед попыткой использовать объекты.
Проверяйте null перед использованием объекта:
string name = GetNameFromSomewhere();
// Защитная проверка
if (name == null)
{
// Обработать случай null
name = "Default Name";
}
// Теперь безопасно использовать name
Console.WriteLine(name.ToUpper());Проверяйте параметры в методах:
public void ProcessOrder(Order order)
{
// Защитная проверка параметра на null
if (order == null)
{
Console.WriteLine("Error: Order cannot be null");
return;
}
// Теперь безопасно обрабатывать заказ
Console.WriteLine("Processing order: " + order.Id);
}Используйте оператор условного доступа (?.) для более чистых проверок на null:
Customer customer = GetCustomerFromSomewhere();
// Вместо:
// string city = null;
// if (customer != null && customer.Address != null)
// {
// city = customer.Address.City;
// }
// Используйте это:
string city = customer?.Address?.City;Задание
ЛегкоСоздайте метод с именем ProcessUserData, который принимает параметр типа string userData. Метод должен:
- Проверить, является ли
userDataзначением null — если да, вывести "Error: User data is null" и выполнить return. - Проверить, является ли
userDataпустым — если да, вывести "Error: User data is empty" и выполнить return. - Если данные являются valid, преобразовать их в верхний регистр и вывести "Processing: [UPPERCASE_DATA]".
Попробуйте сами
using System;
class ProcessUserData
{
public static void processUserData(string userData)
{
// Подсказка: строку "null" следует считать фактическим значением null
// Напишите ваш код здесь
}
}В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.
Все уроки раздела Логика и управление потоком
1Многомерные массивы
Основы 2D-массивовОбъявление и инициализация 2D-массивовДоступ к элементам 2D-массиваВложенные циклы с 2D-массивамиЗубчатые массивыОсновные операции с матрицамиПовторение — многомерные массивы4Методы управления потоком выполнения
Досрочный выходЗащитные условияОператоры перехода (goto)Break и ContinueУпрощение вложенных условных конструкций7Логические операторы: продвинутый уровень
Вычисление с коротким замыканиемУсловные логические операторыПриоритет операторовПовторение — продвинутые операторы2Продвинутое принятие решений
Множественные условияСложная логика BooleanСравнение If и SwitchВложенные конструкции SwitchПовторение — продвинутые решения5Обработка исключений
Основы Try-CatchТипы исключенийНесколько блоков CatchРабота с файламиБлок FinallyИспользование Using вместо Try-FinallyПользовательские исключенияПовторение — обработка ошибок3Улучшение циклов
Производительность цикловИтерация по сложным структурамКаждый тип циклаРефакторинг цикловПовторение — оптимизированные циклы6Обработка null
Основы ссылок на nullТипы значений, допускающие nullШаблоны проверки на nullЗащитное программированиеПовторение — безопасность при работе с nullПотренируйтесь самостоятельно: Онлайн-компилятор C#