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

Обробка помилок (Error Handling)

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

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

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