Obsługa wyjątków C ++

Obsługa wyjątków C ++
Wyjątek to każde nieprawidłowe zachowanie lub błąd czasu wykonywania. Wyjątkiem jest niecodzienna sytuacja w naszym programie, w której nasz program powinien być gotowy do obsługi odpowiedniej odpowiedzi.

Gdzie występuje wyjątek

Za każdym razem, gdy uruchamiamy dowolne oprogramowanie, oczekujemy, że nasze oprogramowanie działa poprawnie w każdej sytuacji. Ale w niektórych przypadkach niektóre zdarzenia występują, gdy normalny przepływ wykonywania naszego oprogramowania jest zatrzymany. Tak więc, kiedy mówimy, że nasze oprogramowanie musi być solidne, oznacza to, że oprogramowanie działa poprawnie w każdej sytuacji.

Obsługa wyjątków

Obsługa wyjątków C ++ służy do systematycznego obsługi warunku błędu w programie, podejmując niezbędne działanie. Korzystając z obsługi wyjątków, możemy łatwo zarządzać i odpowiadać na błąd czasu działania.

Spróbuj, złap, rzuć

  1. Jeśli w naszym programie wystąpi jakakolwiek wyjątkowa sytuacja, zawiera ją w bloku o nazwie próbować blok.
  2. Jeśli jakikolwiek wyjątek wystąpi w bloku próbnym, należy go rzucić za pomocą słowa kluczowego rzucić.
  3. Ten wyjątek jest złapany przez złapać blok. W bloku połowowym jest podejmowane niezbędne działanie, aby poradzić sobie z wyjątkiem.

Składnia

próbować

Catch (type1 arg)

Catch (type2 arg)

----------
Catch (typen arg)

Wyjaśnienie
Po pierwsze, używamy słowa kluczowego próbować. Po zakończeniu bloku próbnego musimy napisać złapać blokuj natychmiast. Możemy pisać wiele bloków połowowych w sekwencji. Ale tam, gdzie wypróbuj blok, wszystkie bloki połowowe muszą być natychmiast zapisane. Jeśli nie napiszemy bloku złapania natychmiast po bloku próbnym, może wystąpić błąd. Używamy rzucić Słowo kluczowe wewnątrz bloku próbowania.

Przykład programowania 1

# włączać
Za pomocą przestrzeni nazw Std;
int main ()

Cout<< “ Exception Handling Program :” ;
próbować
Rzuć 30;
Cout<< “ \n Try ” ;

Catch (int e)
Cout<< “ \n Exception no : ” << e ;

Cout<< “ \n Testing The Last Line ” ;

Wyjście

Wyjaśnienie programowania
W tym przykładzie programowania staramy się pokazać, jak występuje wyjątek i jak sobie z tym poradzić. Wewnątrz głównej funkcji po napisaniu instrukcji wyjściowej używanej próbować blok. Rzucić Słowo kluczowe jest używane wewnątrz bloku próbowania. Po wyrzuceniu słowa kluczowego używamy numeru 30. Może to być ciąg, podwójny lub float- dowolna stała, której możemy użyć. Następnie piszemy oświadczenie Cout. Ale tej linii nie można wykonać po wykonaniu rzutu. Po zakończeniu bloku próbnego natychmiast piszemy blok złapania. Wewnątrz bloku catch piszemy linia (int e). Za pomocą słowa kluczowego rzucamy, którą wartość wyrzucamy, ta wartość wejdzie do zmiennej E. Po zakończeniu bloku połowowego piszemy instrukcję wyjściową „\ n Testowanie ostatniego wiersza”. Teraz pytanie brzmi, kiedy ta linia zostanie wykonana po instrukcji wyjściowej wewnątrz bloku połowowego?

Zasady próby, łapania i rzutów

  1. Jeśli napiszemy blok, musimy napisać blok łap.
  2. Jeśli piszemy tylko blok złapania i nie piszemy żadnego bloku próbnego i rzutu, wystąpi błąd.
  3. Jeśli napiszemy blok rzut i złapanie i nie piszemy żadnego bloku próbnego, wystąpi błąd.
  4. Jeśli piszemy tylko rzut i nie piszemy żadnej próby i złapania bloku, nie wystąpi błąd. Oznacza to, że możemy pisać rzut bez pisania bloku prób.
  5. Jeśli napiszemy wielokrotny blok z różnym typem argumentów, który wartość rzucania będzie pasować do rodzaju argumentu połowowego, zaakceptuje to. Wtedy nie zostanie wykonany żaden inny blok połowowy. Przykład programowania jest podany poniżej.

Przykład programowania 2

# włączać
Za pomocą przestrzeni nazw Std;
int main ()

Cout<< “ Exception Handling Program :” ;
próbować
if (i == 1)
rzucać 1;
if (i == 2)
Rzuć 2;
if (i == 3)
Rzuć 3;
Cout<< “ \n Try ” ;

Catch (Double E)
Cout<< “ \n Exception no : ” << e ;

Catch (int e)
Cout<< “ \n Exception no : ” << e ;

Cout<< “ \n Testing The Last Line ” ;

Wyjście

F. Możemy napisać wiele instrukcji rzutów w jednym bloku próbnym.

Przykład programowania 3

# włączać
za pomocą przestrzeni nazw Std;
int main ()

int i = 3;
Cout<< “ Exception Handling Program :” ;
próbować
if (i == 1)
rzucać 1;
if (i == 2)
Rzuć 2;
if (i == 3)
Rzuć 3;
Cout<< “ \n Try ” ;

Catch (int e)
Cout<< “ \n Exception no : ” << e ;

Cout<< “ \n Testing The Last Line ” ;

Wyjście

G. Możemy napisać rzut rzut w bloku próbnym bez podawania wartości rzutu.

Przykład programowania 4

# włączać
za pomocą przestrzeni nazw Std;
int main ()

Cout<< “ Exception Handling Program :” ;
int i = 3;
próbować
if (i == 3)
rzucić ;
Cout<< “ \n Try ” ;

catch (int)
Cout<< “ \n Exception no : ” ;

Cout<< “ \n Testing The Last Line ” ;

Wyjście

Wyjaśnienie

W tym przypadku piszemy słowo kluczowe bez podawania żadnej wartości, wówczas program zostanie zakończony, ponieważ właściwe obsługa wyjątków nie nastąpi tutaj. W rezultacie Block Catch nie zostanie wykonany. W czasie kompilacji nie będzie błędu. Ale w czasie wykonywania program zostanie zakończony komunikatem „Zakończenie wywoływane bez aktywnego wyjątku”.

Wniosek

Omawiając szczegółowe informacje na temat obsługi wyjątków, dowiadujemy się tutaj, że jeśli w naszym programie nastąpi jakakolwiek nienormalna sytuacja, program będzie musiał być gotowy do zarządzania tą nienormalną sytuacją.