
Лаба 5
.docxМинистерство науки и высшего образования Российской Федерации Федеральное государственное автономное образовательное учреждение высшего образования
«ТОМСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ СИСТЕМ УПРАВЛЕНИЯ И РАДИОЭЛЕКТРОНИКИ» (ТУСУР)
Кафедра комплексной информационной безопасности электронно-вычислительных систем (КИБЭВС)
ГЕНЕРИРОВАНИЕ И ОБРАБОТКА ИСКЛЮЧИТЕЛЬНЫХ СИТУАЦИЙ
Отчет по лабораторной работе №5
по дисциплине «Языки программирования»
Студент гр. 723-1
________
__.__.2025
Руководитель
Преподаватель каф. КИБЭВС
_______ А.В. Куртукова
__.__.2025
Введение
Целью данной лабораторной работы является изучение различных видов исключительных ситуаций и методов их обработки.
Задачи:
1. Изучить механизмы подпрограмм, их описание и вызовы, а также особенности передачи параметров в подпрограммы для языка программирования C#;
2. Разработать программу, генерирующую исключительную ситуацию, и обрабатывающую вызванное исключение;
3. Доработать написанную программу, применив схему обработки исключительных ситуаций Б. Мейера.
ХОД РАБОТЫ
1. Программа, генерирующая и обрабатывающая исключительные ситуации
На рисунке 1.1 представлена программа, где был описан обработчик исключения при делении числа на ноль и при делении на пустое значение. Если найдено деление на 0 или null – запускаем исключение. На рисунках 1.2-1.4 представлены возможные варианты работы программы.
Рисунок 1.1 – Программа на C#
Рисунок 1.2 – Деление на 0
Рисунок 1.3 – Ввод символа
Рисунок 1.4 – Ввод числа
Листинг программного кода представлен в приложении А.
2 Программа с применением схемы Б. Мейера
На рисунке 2.1 представлена программа, где был описан обработчик исключения при проверке числа. На рисунке 2.2 представлены возможные варианты работы программы.
Рисунок 2.1 – Программа на C#
Рисунок 2.2 – Результат работы программы с применением схемы Б. Мейера
Листинг программного кода представлен в приложении Б.
Заключение
В ходе выполнения лабораторной работы были изучены знания о различных видах исключительных ситуаций и методах их обработки.
Приложение А
using System;
public class Program
{
public static void Main(string[] args)
{
// Программа до применения схемы Б. Мейера
Console.Write("Введите число: ");
string inp = Console.ReadLine();
try
{
int number = int.Parse(inp);
int result = 100 / number;
Console.WriteLine("Результат: " + result);
}
catch (FormatException)
{
Console.WriteLine("Некорректный ввод!");
}
catch (DivideByZeroException)
{
Console.WriteLine("Делить на ноль нельзя!");
}
catch (Exception ex)
{
Console.WriteLine($"Произошла непредвиденная ошибка: {ex.Message}");
}
}
}
Приложение Б
using System;
public class Program
{
public static void Main(string[] args)
{
// Программа после применения схемы Б. Мейера
bool success = false;
while (!success)
{
try
{
Console.Write("Введите число: ");
string inp = Console.ReadLine();
int number = int.Parse(inp);
if (number == 0)
{
throw new ArgumentException("Число не должно быть равно нулю");
}
int result = 100 / number;
Console.WriteLine("Результат: " + result);
success = true;
}
catch (ArgumentException exception)
{
Console.WriteLine("Ошибка: " + exception.Message);
Console.WriteLine("Попробуйте снова");
}
catch (FormatException)
{
Console.WriteLine("Ошибка: Некорректный ввод.");
Console.WriteLine("Попробуйте снова");
}
catch (Exception exception)
{
Console.WriteLine("Ошибка: " + exception.Message);
Console.WriteLine("Попробуйте снова");
}
}
Console.WriteLine("Программа завершена");
}
}
Томск 2025