Отслеживание фатальных ошибок
Отслеживание ошибок позволяет избежать аварийного завершения программы. Пример: программа запрашивает у пользователя делитель. Ввод 0 приводит к делению на ноль, фатальной ошибке и завершению программы.
# Код, приводящий к фатальной ошибке
10 / 0
puts "The code" # Эта строка не выполнится
Отслеживание ошибок предотвращает подобные ситуации. Вместо аварийного завершения, программа уведомляет пользователя о проблеме и продолжает работу.
Обработка различных типов ошибок
Помимо деления на ноль, существуют другие типы ошибок. Например, обращение к элементам массива по неверному индексу.
arr = [1, 2, 3]
arr["a"] # Ошибка TypeError
Здесь TypeError возникает из-за попытки обратиться к элементу массива с помощью строки вместо числа.
Использование begin, rescue и end
Для обработки ошибок в Ruby используется конструкция begin, rescue и end. Блок begin содержит код, который может вызвать ошибку. Блок rescue выполняется при возникновении ошибки в блоке begin.
begin
10 / 0
rescue ZeroDivisionError
puts "Деление на 0"
end
puts "Программа продолжает работу"
При делении на ноль выводится сообщение «Деление на 0», но программа не завершается.
Обработка нескольких типов ошибок
Для обработки нескольких типов ошибок используется несколько блоков rescue.
begin
arr = [1, 2, 3]
arr["a"]
10 / 0
rescue ZeroDivisionError
puts "Деление на 0"
rescue TypeError
puts "Type Error"
end
puts "Программа продолжает работу"
Обрабатываются ZeroDivisionError и TypeError. Первое пойманное исключение обрабатывается, последующие игнорируются.
Запись информации об ошибке в переменную
Информация об ошибке может быть сохранена в переменной для детального анализа.
begin
10 / 0
rescue ZeroDivisionError => e
puts "Ошибка: #{e}"
end
Информация об ошибке записывается в переменную e и выводится на экран.
Отслеживание ошибок – важная часть разработки программ. begin, rescue и end позволяют создавать устойчивые и надежные программы, которые обрабатывают ошибки корректно, предоставляя пользователю понятную информацию о проблеме.