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

Obsługa błędów

Błędy są faktem w oprogramowaniu, dlatego Rust posiada szereg funkcji do obsługi sytuacji, w których coś idzie nie tak. W wielu przypadkach Rust wymaga od Ciebie uznania możliwości błędu i podjęcia pewnych działań, zanim Twój kod się skompiluje. Ten wymóg sprawia, że Twój program jest bardziej niezawodny, zapewniając, że odkryjesz błędy i obsłużysz je odpowiednio, zanim wdrożysz swój kod do produkcji!

Rust dzieli błędy na dwie główne kategorie: błędy odzyskiwalne i nieodzyskiwalne. W przypadku błędu odzyskiwalnego, takiego jak błąd pliku nie znaleziono, najprawdopodobniej chcemy po prostu zgłosić problem użytkownikowi i ponowić operację. Błędy nieodzyskiwalne są zawsze objawami błędów, takich jak próba dostępu do lokalizacji poza końcem tablicy, dlatego chcemy natychmiast zatrzymać program.

Większość języków nie rozróżnia tych dwóch rodzajów błędów i obsługuje oba w ten sam sposób, używając mechanizmów takich jak wyjątki. Rust nie ma wyjątków. Zamiast tego, ma typ Result<T, E> dla błędów odzyskiwalnych i makro panic! które zatrzymuje wykonanie, gdy program napotka błąd nieodzyskiwalny. Ten rozdział najpierw omawia wywoływanie panic!, a następnie mówi o zwracaniu wartości Result<T, E>. Dodatkowo, zbadamy rozważania przy podejmowaniu decyzji, czy spróbować odzyskać się po błędzie, czy zatrzymać wykonanie.