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,
- Tipuri de excepții
- Ce este gestionarea excepțiilor?
- Eroare blocare captură
- Mai multe blocuri de captură
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:
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:
std :: excepție
logic_error
eroare de rulare
bad_alloc
cum se utilizează metoda split în javabad_cast
excepție_rău
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.