Обработка ошибок

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

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

Явный panic в основном используется для тестирования и работы с невосстановимыми ошибками. При прототипировании его можно применять, например, когда мы работаем с ещё не реализованными функциями, но в этом случае лучше использовать более говорящее unimplemented. В тестах panic - разумный способ явного оповещения об ошибке.

Тип Option предназначен для случаев, когда значение не обязательно или когда отсутствие значения не является ошибкой. Например, корневые директории / и C: не имеют родителя. При работе с Option, для прототипирования и случаев, когда мы точно знаем, что значение должно быть, отлично подходит unwrap. Однако более полезен expect, так как он позволяет указать сообщение об ошибке на случай, если что-то пойдёт не так.

Когда есть вероятность, что что-то пойдёт не так и вызывающая сторона должна как-то обработать эту ситуацию, используйте Result. Вы также можете использовать unwrap и expect (пожалуйста, не делайте этого, если вы не пишете тест или не прототипируете).

Для более полного изучения обработки ошибок, обратитесь к соответствующему разделу в книге.