Unntak håndtering i C ++ - Del 4 Innledning Dette er del 4 av serien min, Unntak i C ++. Du kan ha en prøve-fangst konstruere i en funksjon. Du kan deretter gå videre til å bestemme hvilken type operander at forsøk blokken i funksjonen kan kaste som unntak. I denne delen av serien, jeg vise deg hvordan du nøyaktig hvilken type unntak at en funksjon kan kaste. Merk: Hvis du ikke kan se koden, eller hvis du tror noe mangler (ødelagt kobling, bilde fraværende), bare kontakte meg på [email protected]. Det er, kontakt meg for den minste problemet du har om hva du leser.
Try-Catch Konstruer en Funksjon Alle sammen har vi hatt prøve-fangst konstruksjoner i den viktigste funksjonen. Du kan fortsatt ha det på noen annen funksjon. Følgende kode illustrerer dette: # include bruker namespace std; ugyldig AFN (int aa, dobbel bb) {try {if ((aa10)) throw aa; if ((bb70)) throw bb; //gjøre noe med aa og bb domstol domstol} catch (int eInt) {cout} catch (dobbel eDbl) {cout}} int main () {AFN (-5, 66,6); returnere 0; } Funksjonen har to argumenter: den første er en int og den andre er en dobbel (float). Int bør ligge mellom 0 og 10 og dobbel bør ligge mellom 50 og 70.
De try blokk sjekker dette og kaster tilsvarende parameter identifikator tilsvarende. Det er en catch-blokken for int og det er en catch-blokken for dobbel. Hovedvekten her er at forsøk blokken og de to catch-blokker er en funksjon. Ikke forveksle mellom situasjonen her og hva vi så i del 1, hvor en prøve blokk kalles en funksjon som hadde kastet uttalelse. Her er den prøve blokk og dens kaste setningen (e) og sperren blokken (e) er i ett funksjon. Spesifisere Unntak fra oven Funksjon operander for innkast uttalelser i funksjonen over er av type int og double.
Du kan presise at enhver operand til innkast uttalelse i forsøk bock av funksjonen må enten være int eller double. Følgende kode illustrerer dette: # include bruker namespace std; ugyldig AFN (int aa, dobbel bb) kast (int, double) {try {if ((aa10)) throw aa; if ((bb70)) throw bb; //gjøre noe med aa og bb domstol domstol} catch (int eInt) {cout} catch (dobbel eDbl) {cout}} int main () {AFN (-5, 66,6); returnere 0; } Legg merke til uttrykket "kaste (int, double)" på slutten av erklæringen (øverst) av funksjonen.
Syntaksen for å spesifisere unntak til en funksjon er returnType fnName (parametre) throw (typer); Spesifikasjonen er gjort på erklæringen av funksjon. Du bare feste "kaste (typer)" til erklæringen av funksjon. Du kan ha en eller flere typ