Jak zaimplementować obsługę wyjątków w C ++?



Ten artykuł pomoże Ci zrozumieć, czym jest obsługa wyjątków i jak zaimplementować obsługę wyjątków w C ++ z praktyczną demonstracją.

Wyjątki są nienormalnymi warunkami w czasie wykonywania lub kompilacji. jest bardzo istotną koncepcją w C ++. W tym artykule omówimy obsługę wyjątków w C ++ wraz z różnymi typami.

Poniższe wskazówki zostaną omówione w tym artykule,





A więc zacznijmy,

Obsługa wyjątków w C ++

Rodzaje wyjątków

Istnieją dwa rodzaje wyjątków:



Wyjątek czasu wykonywania

Jest to wyjątek przechwycony w czasie wykonywania.

Wyjątek w czasie kompilacji



co to jest marionetka i szef kuchni

Jest to wyjątek przechwycony podczas kompilacji.

Przechodząc dalej z tym artykułem dotyczącym obsługi wyjątków w C ++,

Co to jest obsługa wyjątków?

Błędy zakłócają normalne wykonywanie programu. Obsługa wyjątków jest bardzo potrzebna i jest to proces obsługi błędów lub wyjątków. Dba o to, aby wyjątki nie miały wpływu na wykonanie programu i powoli je obsługiwały, nie powodując żadnych problemów z wykonywaniem programu.

Kiedy rozważasz obsługę wyjątków, są z nią powiązane trzy terminy:

Próbować

Kod wewnątrz tego bloku jest jak kod próbny, który może zgłosić wyjątek. Ten wyjątek jest przechwytywany wewnątrz bloku catch.

Łapać

Kod w tym bloku jest wykonywany, gdy kod w blokach try zgłasza wyjątek.

Rzucać

To słowo kluczowe służy do zgłaszania wyjątku, gdy zostanie napotkany. Wyjątek jest wysyłany do programu obsługi wyjątków.

Składnia:

Wykonywany jest kod wewnątrz bloku try. Jeśli zostanie wygenerowany błąd, słowo kluczowe throw zgłasza wyjątek do programu obsługi wyjątków, czyli do bloku catch. Następnie blok catch wykonał kod, który znajduje się w jego bloku, obsługując w ten sposób wyjątek.

Przyjrzyjmy się przykładowemu kodowi do obsługi wyjątków w języku c ++

Przykładowy kod

#include using namespace std try {// code for try throw & ldquoexception & rdquo} catch (wyjątek) {// kod dla catch} int main () {int x = 1 try {cout<< 'Try Block: '<

Wynik:

Wyjście - obsługa wyjątków w C ++ - Edureka

Wyjaśnienie

Ten program demonstruje obsługę wyjątków. Mamy zmienną x, której przypisywana jest wartość 1. Następnie mamy początek bloku try. W tym bloku mamy instrukcję if z warunkiem x<10.

W naszym przypadku warunek jest prawdziwy, ponieważ x wynosi jeden. Następnie program zgłasza wyjątek, a sterowanie przesuwa się, aby złapać blok. Wykonujemy warunek w części catch i wychodzimy z bloku.

catch (...) {koszt<< 'Default Exceptionn'<

Na koniec wykonujemy pozostałe instrukcje po bloku catch i programie wyjściowym.

Może istnieć wiele instrukcji catch, w zależności od liczby możliwych wyjątków.

Przechodząc dalej z tym artykułem dotyczącym obsługi wyjątków w C ++,

Awaria bloku chwytania

Rozważmy poprzedni program, jeśli zamiast x słowo kluczowe throw rzuca „ABC”, wówczas funkcja catch nie będzie w stanie go obsłużyć. Pokaże błąd,

W takim przypadku może zostać wyświetlony nasz wygrany komunikat o błędzie.

Aby rozwiązać ten problem, musimy dodać do kodu domyślną funkcję catch w celu obsługi takich problemów.

#include using namespace std int main () {int x = 1 try {cout<< 'Try Block: '<

Wyjście:

rodzaje transformacji w informatyce

Wyjaśnienie:

Ten kod jest podobny do poprzedniego. Jedyną zmianą jest to, że zgłoszony wyjątek jest typu char. Powoduje to, że nasza funkcja catch jest bezużyteczna. Dlatego dołączyliśmy domyślną funkcję catch.

Jeśli żadna z instrukcji catch nie jest zgodna, wykonywany jest domyślny catch.

Wiele bloków połowowych

W jednym bloku try może być wiele bloków catch.

Oto przykład,

#include using namespace std int test (int a) {try {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Wynik:

Wyjaśnienie:

W powyższym kodzie używamy wielu instrukcji catch. Mamy test funkcji, który generuje wyjątek. W pierwszym przypadku testowym wartość wynosi 10. Ponieważ 10 jest większe od zera, rzucany jest znak „a” i przechwytywany przez drugą funkcję catch.

W drugim przypadku wartość jest mniejsza niż 0, więc wyrzucana jest wartość -1 i jest przechwytywana przez wyjątek całkowity

Obsługa wyjątków w klasie bazowej i pochodnej:

Jeśli wyjątki klasy podstawowej i pochodnej zostaną przechwycone, przechwytywanie klasy pochodnej musi zostać wykonane przed klasą bazową.

Oto kilka wyjątków:

  • std :: wyjątek

  • logic_error

  • błąd runtime_error

  • bad_alloc

  • bad_cast

  • zły_ wyjątek

Tym samym dochodzimy do końca tego bloga o „Obsługa wyjątków w C ++”. Mam nadzieję, że okazały się one przydatne i przydatne. Zaglądaj na więcej samouczków na podobne tematy. Możesz również sprawdzić nasz program szkoleniowyMożesz uzyskać dogłębną wiedzę na temat jQuery i jego różnych aplikacji do szkoleń online na żywo z całodobowym wsparciem i dożywotnim dostępem.

Masz do nas pytanie? Wspomnij o nich w sekcji komentarzy na tym blogu, a skontaktujemy się z Tobą.