Следите за новинками
в нашем Telegram канале. Жми, чтобы подписаться:)
⊗rsPmErInr 311 of 373 menu
◀ ▶

Введение в ошибки в Rust

Ошибка в Rust - это значение, которое функция отдает наружу, когда выполнить задуманное действие не получилось. Такой исход описывают в типе результата рядом с удачным ответом. Вызывающий код сам решает, что делать дальше: разобрать оба варианта или передать сбой выше по цепочке вызовов.

Это близко к идее необязательного значения, с которым вы уже работали: там один тип несет либо данные, либо отсутствие. Здесь второй вариант несет не пустоту, а текст или другой тип, который объясняет, что пошло не так. Удачный и неудачный исход живут в одном типе результата функции.

Функции с таким результатом можно вызывать из обычного main.rs так же, как функции, которые возвращают число или строку. Разница в том, что после вызова нужно явно учесть оба исхода или использовать короткую запись, которая сразу возвращает сбой из текущей функции. Язык не заставляет игнорировать неудачный вариант.

Дальше разберем пару исходов в одном типе, полный разбор, знак вопроса в теле функции, печать текста сбоя и момент, когда значение кончается вместе с именем. Файлы и первые предложения: ok-err/ru.html (исход либо несет результат, либо несет описание сбоя), match/ru.html (разбор обязан назвать удачный исход и сбой), question/ru.html (знак вопроса в функции с тем же типом исхода либо достает результат, либо сразу возвращает сбой наружу), text/ru.html (текст сбоя печатают так же, как обычную фразу), end/ru.html (значение кончается вместе с именем, когда блок заканчивается), practice/ru.html (в этих задачах потренируем удачный исход и сбой).

← →
↑
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить