Funkcja rozpakowania do obsługi błędów w rdzy

Funkcja rozpakowania do obsługi błędów w rdzy

Załóżmy, że potrzebujesz konkretnego fundamentu w zakresie obsługi błędów w rdzy. Musisz zrozumieć opcję i typy wyników. Trzymają podstawę rozpakowy i oczekują funkcji, które są krytyczne w obsłudze błędów.

Zobaczmy, czy możemy je zrozumieć w tym samouczku.

Typ opcji rdzy

Typ opcji rdzy to stosunkowo „proste” enum używane do wyprodukowania możliwości nieobecności.

Spójrz na następującą składnię opcji:

Opcja enum
Nic,
Niektóre (t),

Możesz zauważyć, że ma dwa warianty: coś (niektóre) i nic (żadnego). Ważna jest zdolność poinformowania kompilatora, jak poradzić sobie z możliwością nieobecności.

Krótko mówiąc, pomyśl o typie opcji jako pudełku, które może mieć coś lub nic, ale nie oba.

Typ wyniku rdzy

Typ wyniku jest również zdefiniowany w standardowej bibliotece. Składnia jest podana poniżej:

Wynik Enum
OK (t),
Err (e),

Ma dwa warianty: OK i err. Zauważ, że jest bardzo podobny do typu opcji. To dlatego, że działa bardzo podobnie.

Jednak w przeciwieństwie do typu opcji typ wyniku „przewiduje” możliwość błędu. Pomyśl o tym w ten sposób. Jeśli wykonasz operację, mogą się zdarzyć tylko dwie rzeczy, albo operacja się powiodła, stąd OK.

Lub operacja się nie powiedzie i otrzymasz błąd. Stąd pojawia się wariant ERR. Gdy operacja zwróci błąd w rdzy, wariant err () wywoła panikę! makro i wyjście.

Ale co to ma wspólnego z obsługą błędów?

Istnieją dwa sposoby poradzenia sobie z możliwością nieobecności. Pierwszym z nich jest jawna obsługa za pomocą operatora dopasowania, a następnym jest niejawne obsługa z funkcją rozpakowania.

Poniższy przykład ilustruje podane informacje:

#[Zezwalaj (Dead_Code)]
fncheck_db (db: opcja)
// jawny uchwyt z dopasowaniem
MatchDB
Niektóre („mysql”) => println!(„Serwer działający na porcie: 3306”),
Niektóre („postgresql”) => println!(„Serwer działający na porcie: 5432”),
Niektóre (wewnętrzne) => println!("Pozwól mi to sprawdzić!!!"),
Brak => println!(„Podaj DB:”),


#[Zezwalaj (Dead_Code)]
fndb (db: opcja)
// ukryty uchwyt z rozpakowaniem
IFDB.rozpad () == ""
// panika, jeśli nie ma
panika!("Niedonoszony")


fnmain ()
letmysql = some („mysql”);
letpostgres = some („postgresql”);
Niech brak = brak;
check_db (mysql);
check_db (postgres);
check_db (niektóre („MongoDB”));
check_db (brak);
db (niektóre („MongoDB”));
db (brak);

Poprzedni przykład używa dwóch funkcji, aby zilustrować jawne i domyślne obsługi błędów w braku i niektórych wartości zwracanych.

Pierwszy używa operatora dopasowania do sprawdzania różnych przypadków, podczas gdy drugi używa rozpakowania. Jeśli nie otrzyma, funkcja panikuje.

Poprzedni kod zawiera następujące dane wyjściowe:

Wniosek

W tym artykule dokonano przeglądu obsługi błędów w języku programowania rdzy. Proces ten obejmuje rozpakowanie i oczekiwanie funkcji ukończenia tego procesu. Ponadto omówiono rodzaj opcji rdzy i typ wyników rdzy. Mamy nadzieję, że ten artykuł jest pomocny. Sprawdź inne artykuły w Linux, aby uzyskać więcej wskazówek i informacji.