Cum se implementează gestionarea excepțiilor în C ++?



Acest articol vă va ajuta să înțelegeți ce este gestionarea excepțiilor și cum să implementați gestionarea excepțiilor în C ++ cu demonstrație practică.

Excepții sunt condiții anormale în timpul rulării sau al timpului de compilare. este un concept foarte esențial în c ++. Acest articol vă va prezenta gestionarea excepțiilor în C ++ împreună cu diferitele sale tipuri.

Următoarele indicații vor fi tratate în acest articol,





Deci, hai să începem atunci,

Manevrarea excepțiilor în C ++

Tipuri de excepții

Există două tipuri de excepții,



Excepție timp de rulare

Este o excepție surprinsă în timpul rulării.

la puterea java

Excepție de timp de compilare



Este o excepție surprinsă în timpul compilării.

Continuăm cu acest articol de gestionare a excepțiilor în C ++,

Ce este gestionarea excepțiilor?

Erorile perturbă executarea normală a unui program. Tratarea excepțiilor este foarte necesară și este procesul de tratare a erorilor sau excepțiilor. Se asigură că execuția programului nu este afectată de excepții și le gestionează încet fără a provoca nicio problemă la executarea programului.

Când luați în considerare gestionarea excepțiilor, există trei termeni asociați cu aceasta,

Încerca

Codul din interiorul acestui bloc este ca un cod de încercare, care ar putea genera o excepție. Această excepție este surprinsă în interiorul blocului de captură.

Captură

Codul din acest bloc este executat atunci când codul din blocurile try lansează o excepție.

Arunca

Acest cuvânt cheie este folosit pentru a arunca o excepție atunci când este întâlnită. Excepția este trimisă handlerului de excepții.

Sintaxă:

Codul din blocul try este executat. Dacă există o eroare generată, atunci cuvântul cheie aruncă excepția către gestionarul de excepții, adică blocul de captură. Blocul de captură a executat apoi codul, care se află în blocul său, gestionând astfel excepția.

Să aruncăm o privire la codul eșantion pentru gestionarea excepțiilor în c ++

Cod simplu

#include folosirea spațiului de nume std try {// cod pentru try throw & ldquoexception & rdquo} catch (excepție) {// code for catch} int main () {int x = 1 try {cout<< 'Try Block: '<

Ieșire:

Ieșire - Manevrarea excepțiilor în C ++ - Edureka

Explicaţie

Acest program demonstrează gestionarea excepțiilor. Avem o variabilă x, căreia i se atribuie o valoare 1. Apoi avem începutul blocului try. În acest bloc, avem o instrucțiune if cu condiția x<10.

În cazul nostru, condiția este adevărată, deoarece x este una. Programul aruncă apoi o excepție și controlul se schimbă pentru a prinde blocul. Executăm condiția în partea de captură și ieșim din bloc.

prinde (...) {cost<< 'Default Exceptionn'<

În cele din urmă, executăm instrucțiunile rămase după blocarea programului și ieșirea din program.

Pot exista mai multe declarații de captură, în funcție de numărul de excepții posibile.

Continuăm cu acest articol de gestionare a excepțiilor în C ++,

Eroare blocare captură

Luați în considerare programul anterior, dacă în loc de x cuvântul cheie aruncă aruncă „ABC” atunci, funcția de captare nu va putea să o gestioneze. Va afișa o eroare,

Putem avea mesajul nostru de eroare câștigat în acest caz.

Pentru a rezolva acest lucru, trebuie să adăugăm o funcție de captare implicită la cod pentru a rezolva astfel de probleme.

#includeți utilizarea spațiului de nume std int main () {int x = 1 try {cout<< 'Try Block: '<

Rezultat:

java diferența dintre unelte și extinde

Explicaţie:

Acest cod este similar cu cel anterior. Singura modificare este că excepția aruncată este de tip char. Acest lucru are ca rezultat că funcția noastră de captură este inutilă. Așa că am inclus o funcție de captare implicită.

Dacă niciuna dintre declarațiile de captură nu se potrivește, atunci se execută captura implicită.

Mai multe blocuri de captură

Pot exista mai multe blocuri de captură ale unui singur bloc de încercare.

Iată un exemplu,

#includeți utilizarea spațiului de nume std int test (int a) {încercați {if (a<0) throw a else throw 'a' }catch(int a){ cout<<'Caught an integer: ' << a<

Ieșire:

Explicaţie:

În codul de mai sus, folosim mai multe declarații de captură. Avem un test funcțional care generează o excepție. În primul caz de testare, valoarea este 10. Deoarece 10 este mai mare decât zero, „a” caracterul este aruncat și este prins de a doua funcție de captură.

În cel de-al doilea caz, valoarea este mai mică de 0, deci valoarea -1 este aruncată și este surprinsă de excepția numărului întreg

Manevrarea excepțiilor în clasa de bază și derivată:

Dacă excepțiile clasei de bază și derivate sunt capturate, capturile clasei derivate trebuie executate înainte de clasa de bază.

Iată câteva excepții:

Cu aceasta ajungem la sfârșitul acestui blog pe „Exception Handling In C ++”. Sper că ați găsit acest lucru informativ și util, rămâneți la curent pentru mai multe tutoriale despre subiecte similare. De asemenea, puteți consulta programul nostru de formare to Obțineți cunoștințe aprofundate despre jQuery împreună cu diferitele sale aplicații, puteți pentru instruire online live cu asistență 24/7 și acces pe viață.

Ai o întrebare pentru noi? Menționați-le în secțiunea de comentarii a acestui blog și vă vom răspunde.