Chociaż kompilator zaimplementuje domyślną obsługę błędów, dobrze jest zrozumieć, jak obsługiwać błędy dla niestandardowej logiki. Obsługa błędów uniemożliwi program program.
Poznajmy, jak radzić sobie z błędami w języku programowania rdzy.
Typy błędów rdzy
Istnieją dwa rodzaje błędów w rdzy:
Niezwajane błędy
Niezwajane błędy odnoszą się do rodzajów błędów, które powodują, że program umierają lub wyjścią nienormalnie. Przykładem byłby dostęp do indeksu poza niepoprawieniem w tablicy.
Rdza używa paniki! Makro do obsługi nieokreślonymi błędami. Załóżmy, że kompilator napotyka panikę! Makro w twoim kodzie. Drukuje określone wiadomości, czyści stos i kończy program.
Panika! Makro jest bardzo przydatne, gdy napotykasz błędy, z których program nie może odzyskać.
Weź prosty program podany poniżej, który ilustruje, jak korzystać z makro paniki:
fn main ()Po wykonaniu poprzedniego kodu powinieneś uzyskać dane wyjściowe, jak pokazano poniżej:
Wzywając panikę! powoduje, że program kończy i wydrukuje określoną metodę paniki.
Cofając panikę
Rust pozwala nam wycofać źródło błędu za pomocą zmiennej środowiskowej rust_backtrace. Odwrotność odnosi się do listy funkcji, które zostały wywołane przed wystąpieniem błędu.
Weźmy przykład podany poniżej:
fn main ()W poprzednim przykładzie staramy się przeczytać wskaźnik tablicy poza nieokreślonymi. Powinno to spowodować panikę i wychodzenie.
Wyjście wyjściowe jest podane poniżej:
Jak widać z wyjścia, kompilator mówi nam, że możemy użyć zmiennej środowiskowej rust_backtrace, aby uzyskać wycofanie się błędu.
Możemy to zrobić za pomocą następującego polecenia:
$ Rust_backtrace = 1 bieg ładunkowyPowinno to zwrócić wyjście cofania jako:
Powinno to zwrócić szczegółowe dane wyjściowe o tym, jak wystąpił błąd w twoim kodzie. W przypadku opcji całkowicie omawianej możesz użyć rust_backtrace = pełny.
Błędy możliwe do odzyskania
Zazwyczaj rzadko będziesz musiał obsługiwać nieprawidłowe błędy. Aby poradzić sobie z błędami w rdzy, używamy wyniku wyniku, które zawiera dwa warianty: OK i ERR.
Weźmy następujący prosty program, który próbuje otworzyć plik:
usestd :: fs :: plik;Poprzedni kod próbuje otworzyć nieistniejący plik. Uruchamianie powyższego programu powinno powrócić jako:
Err (OS Code: 2, Kind: Notfound, Message: „System nie może znaleźć określonego pliku.")Możemy jednak zdefiniować pożądane działanie, jeśli plik nie istnieje. Przykład jest pokazany poniżej:
usestd :: fs :: plik;Tutaj używamy operatora dopasowania, aby sprawdzić, czy plik zwrócił błąd lub OK. Następnie podejmujemy działania dla każdej sprawy.
Możemy również użyć metody oczekiwania do tworzenia niestandardowych specyfiki obsługi błędów.
Na przykład:
usestd :: fs :: plik;Metoda oczekiwana, która wywoła makro Panic w błędzie, jest napotykana podczas otwierania pliku.
Zamknięcie
Ten samouczek obejmował podstawy obsługi błędów w języku programowania rdzy. Ponadto w tym przewodniku omówiono dwa rodzaje błędów: błędy możliwe do odzyskania i niewłaściwe błędy. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły z Linux, aby uzyskać więcej wskazówek i informacji.