Обробка помилок

Помилки є частиною звичайного життя в програмному забезпеченні, тому Rust має ряд можливостей для обробки ситуацій, коли щось йде не так. У багатьох випадках Rust вимагає від вас визнати можливість помилки та вжити певних дій перед тим, як ваш код буде скомпільовано. Ця вимога робить вашу програму більш надійною, забезпечуючи що ви будете виявляти помилки та поводитися з ними належним чином, перш ніж ви розгорнете свій код у production!

Rust групує помилки у дві основні категорії: виправні та невиправні помилки. Для виправних помилок, таких як помилка файл не знайдено, ми, швидше за все, захочемо просто повідомити про проблему користувачеві й спробувати знову повторити операцію. Невиправні помилки завжди є ознаками вад, наприклад спроба отримати доступ до місця в пам'яті після закінчення масиву, і тому ми хочемо негайно зупинити програму.

Більшість мов не розрізняють ці два види помилок і обробляють їх однаково, використовуючи механізми, такі як виняткові ситуації. У Rust немає виняткових ситуацій. Натомість вона має тип Result<T, E> для виправних помилок та макрос panic!, що зупиняє виконання, коли програма зіткнулася з невиправною помилкою. Цей розділ спершу охоплює виклик panic!, а потім розповідає про повернення значень Result<T, E>. Крім того, ми розглянемо міркування при ухваленні рішення про те, чи намагатися відновитися після помилки, чи зупинити виконання.