Обработка ошибок
Обработка ошибок - это процесс управления возможными сбоями. Например ошибка чтения файла и последующее использование плохих данных могут прояснить проблематику. Уведомление и явное управление этими ошибками сохранит оставшуюся часть программы от различных неожиданностей.
В Rust есть разные пути работы с ошибками, которые описаны в следующих главах. Они все имеют те или иные отличия и разные варианты использования. Как правило большого пальца:
Явный panic
в основном применим для тестирования и работы с невосстановимыми ошибками.
При прототипировании его можно использовать, например, когда работаем с ещё не реализованными функциями, но в этом случае лучше использовать более говорящее unimplemented
.
В тестах panic
- разумный способ явного оповещения об ошибке.
Тип Option
предназначен для случаев, когда значение не обязательно или когда отсутствие значения не является ошибкой.
Например, корневые директории /
и C:
не имеют родителя. При работе с Option
,
для прототипирования и случаев, когда мы точно знаем, что
значение должно быть, отлично подходит unwrap
. Однако более полезен expect
, так как он позволяет
указать сообщение об ошибке на случай, если что-то пойдёт не так.
Когда есть вероятность, что что-то пойдёт не так и вызывающая
сторона должна как-то обработать эту ситуацию, используйте Result
.
Вы также можете использовать unwrap
и expect
(пожалуйста, не делайте этого, если вы не пишете тест или не прототипируете).
Для более полного изучения обработки ошибок, обратитесь к соответствующему разделу в книге.