Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

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

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

Rust группирует ошибки на две основные категории: восстанавливаемые и невосстанавливаемые ошибки. Для восстанавливаемой ошибки, такой как ошибка «файл не найден», мы, скорее всего, просто хотим сообщить о проблеме пользователю и повторить операцию. Невосстанавливаемые ошибки всегда являются симптомами багов, таких как попытка доступа к элементу за пределами массива, и поэтому мы хотим немедленно остановить программу.

Большинство языков не различают эти два вида ошибок и обрабатывают их одинаково, используя такие механизмы, как исключения. В Rust нет исключений. Вместо этого существует тип Result<T, E> для восстанавливаемых ошибок и макрос panic!, который останавливает выполнение, когда программа сталкивается с невосстанавливаемой ошибкой. Эта глава сначала охватывает вызов panic!, а затем рассказывает о возврате значений Result<T, E>. Кроме того, мы рассмотрим соображения при принятии решения о попытке восстановления после ошибки или остановке выполнения.