Hur implementerar jag undantagshantering i C ++?



Den här artikeln hjälper dig att förstå vad som är undantagshantering och hur man implementerar undantagshantering i C ++ med praktisk demonstration.

Undantag är onormala förhållanden under körtid eller kompileringstid. är ett mycket viktigt koncept i c ++. Den här artikeln presenterar dig för undantagshantering i C ++ tillsammans med dess olika typer.

Följande tips kommer att behandlas i den här artikeln,





Så låt oss komma igång då,

Undantagshantering i C ++

Typer av undantag

Det finns två typer av undantag,



Driftstid Undantag

Det är ett undantag som fångats under körtiden.

Undantag för kompileringstid



Det är ett undantag som fångats under kompileringstiden.

Gå vidare med denna artikel om undantagshantering i C ++,

Vad är undantagshantering?

Fel stör normal körning av ett program. Undantagshantering är mycket nödvändig och det är processen att hantera fel eller undantag. Det ser till att programkörningen inte påverkas av undantagen och hanterar dem långsamt utan att orsaka något problem för programkörningen.

När du överväger undantagshantering finns det tre termer associerade med det,

Prova

hur man hittar datatypen i python

Koden inuti detta block är som en provkod, vilket kan leda till ett undantag. Detta undantag fångas inuti fångsten.

Fånga

Koden i detta block körs när koden i försöksblocken ger ett undantag.

Kasta

Detta nyckelord används för att kasta ett undantag när det påträffas. Undantaget skickas till undantagshanteraren.

Syntax:

Koden inuti försöksblocket körs. Om det genereras ett fel, kastar nyckelordskastet undantaget till undantagshanteraren, det vill säga fångsten. Fångstblocket körde sedan koden, som finns inuti blocket, och hanterade därmed undantaget.

Låt oss ta en titt på exempelkoden för undantagshantering i c ++

Exempelkod

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

Produktion:

Output - Undantagshantering i C ++ - Edureka

Förklaring

Detta program visar undantagshantering. Vi har variabeln x, som tilldelas värdet 1. Sedan har vi början på försöksblocket. I detta block har vi ett if-uttalande med villkoret x<10.

I vårt fall är villkoret sant eftersom x är ett. Programmet ger sedan ett undantag och kontrollen växlar till fångstblock. Vi utför villkoret i fångsten och lämnar blocket.

fånga (...) {kostnad<< 'Default Exceptionn'<

Slutligen utför vi de återstående uttalandena efter fångstblocket och avslutningsprogrammet.

skillnad mellan metodöverbelastning och metodöverstyrning

Det kan finnas flera fångstuttalanden, beroende på antalet möjliga undantag.

Gå vidare med denna artikel om undantagshantering i C ++,

Fånga blockeringsfel

Tänk på det föregående programmet, om i stället för x kastar nyckelordet 'ABC' då kommer inte fångningsfunktionen att kunna hantera det. Det kommer att visa ett fel,

Vi kan få vårt vanliga felmeddelande visas i sådana fall.

För att lösa detta måste vi lägga till en standardfångningsfunktion i koden för att hantera sådana problem.

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

Utgång:

Förklaring:

Den här koden liknar den tidigare. Den enda förändringen är att undantaget som kastas är av typen char. Detta resulterar i att vår fångstfunktion är värdelös. Så vi har inkluderat en standardfångfunktion.

Om ingen av fångstangivelserna matchar körs standardfångsten.

Flera fångstblock

Det kan finnas flera fångstycken i ett enda försöksblock.

Här är ett exempel,

vad används sas-programmering för
#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<

Produktion:

Förklaring:

I ovanstående kod använder vi flera fångstuttalanden. Vi har ett funktionstest som genererar ett undantag. I det första testfallet är värdet 10. Eftersom 10 är större än noll kastas 'a' karaktären och den fångas av den andra fångstfunktionen.

I det andra fallet är värdet mindre än 0 så värdet -1 kastas och det fångas av heltalsundantag

Undantagshantering i bas- och härledd klass:

Om undantag från bas och härledd klass fångas måste fångsten av härledd klass utföras före basklassen.

Här är några undantag:

  • std :: undantag

  • logik_fel

  • runtime_error

  • dåligt_alloc

  • dålig_sändning

  • dåligt undantag

Med detta kommer vi till slutet av denna blogg om ”Exception Handling In C ++”. Jag hoppas att du tyckte att det här var informativt och hjälpsamt, håll dig uppdaterad om du vill ha mer självstudier om liknande ämnen. Du kan också kolla in vårt träningsprogram to få fördjupad kunskap om jQuery tillsammans med dess olika applikationer, du kan för live online-utbildning med support dygnet runt och livstidsåtkomst.

Har du en fråga till oss? Nämn dem i kommentarsektionen på den här bloggen så återkommer vi till dig.