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:
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överstyrningDet 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.