Argumentet av kast uttryck kan vara en bokstavlig eller en identifierare. Du är den som beslutar om det. Du tar dessa beslut beroende på vilken typ av fel och hur du vill hantera felet. Catch-blocket bör omedelbart följa try-blocket i din maskinskrivning, såsom i ovanstående syntax. Den föregående koden skrivits med hjälp av try /catch bygga på följande sätt: #include using namespace std; int main () {int täljare = 8; int nämnare = 2; try {if (nämnare = 0!) {int answer = täljare /nämnare; cout} else {kasta 0; }} Catch (int e) {if (e == 0) cout} return 0; } Läs igenom ovanstående kod, om du inte redan har gjort det.
I många fall har try-blocket ekvivalent en if-villkor vars blocket kommer att utföra om tillståndet inte upptäcker felet. Om tillståndet upptäcks felet kommer if-blocket inte köra, och annat delen kommer att kasta undantaget; det är else delen kalla catch-blocket skicka argument kast uttryck för det. Fångsten blocket använder argumentet för att visa ett lämpligt felmeddelande till användaren. Detta är vad som händer i många fall.
Fel vanligtvis inte hanteras i den verkliga bemärkelse; vanligtvis ett felmeddelande skickas till användaren, en om-konstruktion i try -blocket hindrar felet från att faktiskt inträffar. Efter detta utförande, fortsätter programmet i sekvensen från try /catch konstruktion; och det finns ingen uppsägning av programmet även om ett fel upptäcktes. Prova ovanstående kod. I initieringen av nämnaren, ovan, byt rätt operanden med 0 och testa koden igen. Nu try-blocket kan faktiskt ha en if /else bygga med många kast. Fångsten blocket kan på motsvarande sätt ha if /else konstruktioner.
Du är den som beslutar om vilka argument som ska ges för ett kast uttryck. I catch-blocket, kan värdet av en viss argument avgöra vad du koda som felmeddelande. Med hänvisning till ovanstående kod, kan ett argument vara 0, kan en annan vara 5, ett annat kan vara 10