Spróbuj złapać w Matlab

Spróbuj złapać w Matlab
Poniższy artykuł wyjaśnia, jak korzystać z instrukcji Try-Catch w MATLAB®. Instrukcja TRY-Catch jest jednym z najczęściej używanych języków programowania na całym świecie, a jego tryb wykonania jest taki sam dla wszystkich. Ten artykuł zawiera praktyczne przykłady i obrazy, które pomogą czytelnikowi zrozumieć, jak korzystać z tego oświadczenia do obsługi błędów w wykonaniu w czasie rzeczywistym.

Matlab spróbuj składni Catch Catch

próbować
sprawozdania
Złap wyjątek
sprawozdania
koniec

Matlab spróbuj opisów i przykładów

Instrukcja TRY-Catch to narzędzie, które zapewnia stabilność programu i solidność w stosunku do wyjątków lub błędów w prawdziwym czasie wykonywania. Te wyjątki lub błędy mogą zostać złapane, aby w przypadku wystąpienia jednego z tych zdarzeń można je obsługiwać w przewidywalny i uporządkowany sposób i nie wpływają na wydajność systemu.

Instrukcja TRY-Catch składa się z dwóch bloków: Try to blok, który obejmuje część kodu, która może wygenerować wyjątek lub błąd, a połów jest blokiem, który obsługuje te wyjątki, które należy bezpiecznie przetwarzać. Kiedy próba złapie wyjątek, przekazuje kontrolę, aby złapać do przetwarzania. Below, we will look at some practical examples using the try-catch statement to understand better how it works.

Jak wykryć i przetworzyć wyjątek lub błąd w instrukcji TRY-Catch w MATLAB

Ten przykład pokazuje, jak korzystać z instrukcji TRY-Catch w stosunku do wspólnego błędu podczas obliczania korzeni kwadratowych za pomocą funkcji realsqrt (). Jest to jedna z trzech podstawowych funkcji, które MATLAB dla tego rodzaju operacji matematycznej i akceptuje tylko liczby rzeczywiste z dodatnim znakiem jako argumenty wejściowe. Jeśli ta reguła nie jest spełniona, generowany jest błąd.

Następnie spójrzmy na wykrywanie i obsługę tego błędu, tworząc aplikację konsoli, która oblicza korzenie kwadratowe za pomocą funkcji realsqrt (). Ta operacja jest wykonywana w bloku próbnym. Gdy wystąpi błąd, kontrola jest przekazywana do połowu w celu rozwiązania obliczeń za pomocą funkcji sqrt (), która akceptuje liczby ujemne lub złożone.

Utwórz skrypt, wklej ten kod i kliknij Uruchom. Aby zamknąć aplikację, naciśnij Ctrl+C

podczas 1
monit = 'Wprowadź wartość, aby uzyskać pierwiastek kwadratowy.';;
a = wejście (monit);
próbować
x = realsqrt (a);
złapać
Disp „Spróbuj znaleźć błąd i przekazał kontrolę, aby złapać”
x = sqrt (a);
koniec
disp (['pierwiastek kwadratowy to:', num2str (x)])
koniec

Po uruchomieniu aplikacji wprowadzamy wartości, które musimy obliczyć root kwadratowy.

Jeśli wprowadzone są wartości ujemne lub złożone, zamiast podnieść błąd w funkcji realsqrt (), przekazuje kontrolę, a operacja jest rozwiązywana za pomocą funkcji sqrt (). Kiedy tak się dzieje, w konsoli poleceń wyświetlany jest następujący komunikat:

„Spróbuj znaleźć błąd i przekazać kontrolę, aby złapać”

Jak zidentyfikować błędy za pomocą „Mexception” i zarządzać nimi z próbą Catch in Matlab

Chociaż identyfikacja wyjątków z „Mexception” zasługuje na swój własny artykuł, krótko wyjaśnimy, jak korzystać z tego zasobu, który pomaga nam zidentyfikować błędy i jest skutecznym uzupełnieniem podczas korzystania z instrukcji Try-Catch. MATLAB konstruuje obiekt „Mexception” z informacjami o błędach, gdy generowany jest błąd. Ta informacja jest bardzo przydatna, ponieważ możemy je użyć do klasyfikacji i obsługi różnych konkretnych błędów. Below you can see the contents of “MException” with information about an error generated by the unique() function.

W poniższym przykładzie zobaczymy, jak pobrać te informacje, aby poprawnie przetworzyć błędy. Aby to zrobić, utworzymy aplikację konsoli, w której użyjemy funkcji unikalnej (), aby wygenerować błędy, które będziemy obsługiwać w bloku catch i funkcji monit () do wprowadzania danych, które będą argumentami wejściowymi unikalnych ().

Kiedy próba łapie jeden z tych błędów, przechowuje swoje informacje w „Mexception”, które stworzymy o nazwie „inf_err”, jak pokazano poniżej.

Catch inf_err

W bloku połowowym wysyłamy komunikat do użytkownika, informując go o wykryciu błędu za pomocą następującej wiadomości „Spróbuj znaleźć błąd i przekazał kontrolę, aby złapać”.

Następnie bierzemy identyfikator błędu z wcześniej utworzonego obiektu „err_inf.identyfikator ”. Ten identyfikator ma formę łańcucha i podaje nam informacje o:

Funkcja, która ją wygenerowała Matlab: Unikalny

I konkretny błąd Nieznane wejściowe

„Matlab: unikalny: nieznany”

Ten ciąg będzie argumentem, że warunkowy przełącznik będzie porównywał z każdym z predefiniowanych błędów w każdym przypadku.

przełącznik inf_err.identyfikator
Case „Matlab: unikalny: nieznany

Case „Matlab: unikalny: nieznanyflag”

koniec

Możliwe rozwiązanie błędu lub komunikatu dla użytkownika zostanie podane w każdym przypadku.

Utwórz skrypt, wklej ten kod i uruchom skrypt. Aby zamknąć aplikację, naciśnij Ctrl+C.

ns = [1, 2, 3; 4, 5, 6];
podczas 1
monit = 'Wprowadź wartość, aby uzyskać unikalny.';;
a = wejście (monit);
próbować
x = unikalne (ns, a);
Catch inf_err
Disp „Spróbuj znaleźć błąd i przekazał kontrolę, aby złapać”;
disp (['identyfikator błędów:', inf_err.identyfikator]);
przełącznik inf_err.identyfikator
Case „Matlab: unikalny: nieznany
diss 'nie można było znaleźć określonego wpisu. Proszę spróbuj ponownie.';;
Case „Matlab: unikalny: nieznanyflag”
Disp „Funkcja unikalna () nie rozpoznaje flagi:”;
Disp (a);
Disp „Ważne flagi to„ wiersze ”,„ First ”,„ last ”,„ stabilne ”,„ sortowane ”;
koniec
koniec
monit = 'naciśnij ENTER, aby kontynuować';
a = wejście (monit);
clc ();
koniec

Dane wprowadzone za pomocą wiersza są wysyłane jako drugi argument wejściowy do funkcji unikalnej (). Wejście to odpowiada „wierszom”, „pierwszemu”, „ostatnim”, „stabilnej”, „sortowanej” lub „starszej” flag tej funkcji, więc wygeneruje błąd, jeśli ciąg zostanie wysłany ten unikalny () nie () uznany za jedną z tych flag. Wygeneruje również błąd, jeśli to wejście otrzyma wartość liczbową. Predy zdefiniowaliśmy przypadek w warunkowym przełączniku dla każdego z tych dwóch błędów, aby obsłużyć każdy błąd osobno. W obu przypadkach wiadomości są wysyłane do użytkownika, informując ich o błędach i możliwych rozwiązaniach.

Gdy aplikacja działa w konsoli MATLAB, wprowadź „wiersze” w wierszu i naciśnij Enter. W takim przypadku nie jest generowany błąd, a wynik jest = unikalny (ns, „wiersze”) i jest wyświetlany w konsoli dowodzenia.

W takim przypadku ciąg „ABCD” został wysłany do unikalnego (), a ponieważ nie pasuje do żadnej flagi, wygenerowano błąd.

W bloku „Catch” informacje o tym błędach zostały zebrane i sklasyfikowane, aby nadać mu specjalne leczenie, wiadomość dla użytkownika z opcjami flagowymi dostępnymi w funkcji unikalnej ().

To samo w tym przypadku, gdy wysłano nie zaakceptowany typ wejściowy, wygeneruje to błąd, że blok „spróbuj” wykrywa i przekazuje kontrolę do bloku „złap”, w którym błąd jest klasyfikowany i traktowany; W takim przypadku komunikat użytkownika zgłaszający błąd i możliwe rozwiązanie.

Wniosek:

W tym artykule wyjaśniliśmy instrukcję Try-Catch w Matlab. Podaliśmy także kilka praktycznych przykładów, które pokazują zastosowanie „stwierdzenia Try-Catch do obsługi wyjątków. Wyjaśniliśmy również, jak sklasyfikować błędy w bloku „złap” za pomocą obiektu Mexception. Mamy nadzieję, że ten artykuł MATLAB jest przydatny. Więcej wskazówek i informacji można znaleźć w innych artykułach dotyczących Linuksa.