C++ Try-Catch-Finally

C Try Catch Finally



C++ proporciona el mètode 'try-catch' per gestionar les excepcions. Quan es produeix una excepció al programa C++, aquests mètodes 'try-catch' ajuden a canviar el control d'una part del codi del programa a l'altra. Una excepció és un error que apareix mentre s'executa un programa. Quan es produeix una situació extraordinària, com ara intentar dividir per zero, mentre s'executa un programa, es genera una excepció C++ i manegem aquesta situació simplement utilitzant el mètode 'try-catch' als nostres codis. Conté tres paraules clau: 'provar', 'atrapar' i 'llençar'. La paraula clau 'tirar' s'utilitza per llançar l'excepció en altres parts del codi. La programació en C++ no ens facilita la paraula clau 'finally', però podem utilitzar les paraules clau 'provar', 'atrapar' i 'llençar' als codis C++.

Exemple 1:

Aquí s'inclou 'iostream', el fitxer de capçalera en el qual es declaren diverses funcions. Utilitzem aquestes funcions que es declaren en aquest fitxer de capçalera del nostre codi, de manera que incloem aquest fitxer de capçalera. Després d'això, tenim el 'std' que es col·loca aquí, ja que també s'hi defineixen funcions com 'cin' i 'cout'. No cal que escrivim 'std' amb totes aquestes funcions si afegim el 'namespace std' al començament del nostre codi. Després d'això, aquí s'invoca la funció 'main()', que també es coneix com el codi del controlador del programa C++.

A continuació, fem servir la paraula clau 'prova' aquí en la qual inicialitzem 'my_num1' amb el valor '35'. Aquí és la variable de tipus de dades 'int'. Ara, col·loquem aquesta variable dins de 'si' i posem una condició que digui que 'el meu_núm1' ha de ser més gran o igual que '98'. Si es compleix la condició donada, avança dins de 'si' i executa la instrucció que s'escriu aquí. Utilitzem el 'cout' i inserim un missatge per mostrar quan es compleix la condició.







Després d'això, utilitzem la paraula clau 'tirar' després de col·locar 'else'. En aquesta paraula clau 'llenar', passem 'my_num1' com a paràmetre. Afegim la part 'catch' a sota d'això. Inseriu 'my_num2' com a paràmetre de 'catch()' i després tornem a utilitzar el 'cout' dins d'aquesta part 'catch'. Aquesta part només s'executa quan es produeix una excepció a la part 'prova'.



Codi 1:



#inclou
utilitzant espai de noms std ;
int principal ( ) {
provar {
int el meu_núm1 = 35 ;
si ( el meu_núm1 >= 98 ) {
cout << 'L'accés es concedeix aquí'. ;
} altra cosa {
llançar ( el meu_núm1 ) ;
}
}
agafar ( int el meu_núm2 ) {
cout << 'Aquí es denega l'accés'. << endl ;
cout << 'El número és:' << el meu_núm2 ;
}
tornar 0 ;
}

Sortida:
El número que hem introduït és '35', que és inferior a '98'. Per tant, l'excepció es produeix allà i es mostra la part 'catch()'. Es denega l'accés a la part 'prova'.





Exemple 2:

Col·loquem el fitxer de capçalera 'iostream' aquí i el 'namespace std'. Després d'això, creem una funció 'division()' en la qual col·loquem dos paràmetres que són el 'numerador' i el 'denominador' del tipus de dades 'int'. Definim el tipus de dades d'aquesta funció de 'divisió' a 'doble'.



Per sota d'això, afegim “si()” en què afegim la condició que el denominador sigui igual a zero. Després d'això, fem servir la paraula clau 'tirar' i escrivim un missatge allà. Aquest missatge es mostra sempre que es produeix l'excepció en aquest codi segons la condició. A sota d'això, utilitzem la paraula clau 'retorn' en la qual col·loquem 'numerador/denominador'. Per tant, retorna el resultat de la divisió. Ara, s'anomena la funció 'main()'.

Després d'això, 'num1' i 'num2' s'inicialitzen com a variables 'int' i els assignen '89' i '0' respectivament. A continuació, inicialitzem el 'resultat' del tipus de dades 'doble'. Aquí, utilitzem la paraula clau 'prova'. En aquesta part, afegim aquesta variable 'resultat' i assignem la funció 'divisió ()' a aquesta variable. Passem dos paràmetres a aquesta funció: 'num1' i 'num2'. A sota d'això, mostrem el 'resultat' que obtenim després d'aplicar la funció 'divisió()'. Després d'això, també fem servir el 'catch' i col·loquem el 'const char* msg' per mostrar el missatge que hem afegit anteriorment.

Codi 2:

#inclou
utilitzant espai de noms std ;
doble divisió ( int numerador, int denominador ) {
si ( denominador == 0 ) {
llançar 'La divisió per zero no és possible aquí!' ;
}
tornar ( numerador / denominador ) ;
}
int principal ( ) {
int núm1 = 89 ;
int num2 = 0 ;
doble resultat = 0 ;
provar {
resultat = divisió ( núm1, núm2 ) ;
cout << resultat << endl ;
} agafar ( const char * msj ) {
cerr << msj << endl ;
}
tornar 0 ;
}

Sortida:
El nombre que hem inserit anteriorment com a denominador és '0'. Per tant, l'excepció es produeix al codi i mostra el missatge donat.

Exemple 3:

Aquí es crea la funció 'multiplication()' en la qual col·loquem el 'valor' i el 'multiplicador' com a paràmetres del tipus de dades 'int'. Aleshores, utilitzem 'si' en què afegim una condició multiplicadora que és igual a zero. A continuació, es col·loca 'llençar' on afegim una declaració. Aleshores, tenim el 'retorn' on col·loquem les variables 'valor * multiplicador' que hem declarat anteriorment. Per tant, retorna aquí el resultat de la multiplicació.

Després d'això, anomenem 'main()' on declarem 'int value1' i 'int value2' amb els valors de '34' i '0', respectivament. El 'int m_res' també es declara i després es diu la funció 'multiplication()' aquí. Després de realitzar aquesta funció, el resultat es desa a la variable 'm_res' i després es mostra. Posteriorment, fem servir la funció 'catch' i inserim el 'const char* msg' per mostrar el missatge que hem afegit anteriorment a la part 'throw'.

Codi 3:

#inclou
utilitzant espai de noms std ;
doble multiplicació ( int valor, int multiplicador ) {
si ( multiplicador == 0 ) {
llançar 'No multipliquem el valor per zero!' ;
}
tornar ( valor * multiplicador ) ;
}
int principal ( ) {
int valor 1 = 34 ;
int valor 2 = 0 ;
int m_res ;
provar {
      m_res = multiplicació ( valor1, valor2 ) ;
cout << m_res << endl ;
} agafar ( const char * msj ) {
cerr << msj << endl ;
}
tornar 0 ;
}

Sortida :
Com que el valor que hem introduït anteriorment té '0' com a multiplicador, el codi té una excepció que fa que l'avís es mostri aquí.

Exemple 4:

Aquí, construïm la funció 'multiply()' i passem el 'número1' i el 'número2' com a paràmetres del tipus de dades 'int'. A continuació, utilitzem l'operador 'si' per afegir-hi una condició que és un multiplicador que és menor o igual a zero. Després d'això, s'afegeix la declaració on se suposa que ha de ser 'llençar'. El resultat de la multiplicació es retorna a la secció 'retorn' on inserim la variable 'número1 * nombre2' que hem declarat anteriorment.

Posteriorment, invoquem la funció 'main()' i assignem els valors '34' i '12' a 'int newNumber1' i 'int newNumber2', respectivament. Aquí, la funció 'multiplicar()' es crida després de la declaració de 'int mResult'. Ara, el resultat d'aquesta funció s'emmagatzema a la variable 'mResult' i es representa a continuació. A continuació, fem servir la funció 'catch' i afegim el 'const char* msg' per mostrar el missatge que hem escrit a la secció 'tirar'.

Codi 4:

#inclou
utilitzant espai de noms std ;
doble multiplicar ( int número 1 , int número 2 ) {
si ( número 2 <= 0 ) {
llançar 'No multipliquem el valor per zero o valor negatiu!' ;
}
tornar ( número 1 * número 2 ) ;
}
int principal ( ) {
int nouNúm1 = 34 ;
int nouNúm2 = 12 ;
int mResultat ;
provar {
mResultat = multiplicar ( nouNúmero1, nouNúmero2 ) ;
cout << 'El resultat de la multiplicació és' << mResultat << endl ;
}
agafar ( const char * msj ) {
cerr << msj << endl ;
}
tornar 0 ;
}

Sortida:
El valor que afegim és '12' al qual afegim la condició. Per tant, la funció 'multiplicar()' es realitza ja que la condició no és certa. Es mostra el resultat de la multiplicació. La part 'prova' s'executa aquí.

Conclusió

El concepte 'try-catch' i els codis d'aquesta guia s'estudien amb detall. Vam explorar a fons aquest concepte 'try-catch' i vam mostrar com funciona en la programació C++. Hem definit que el terme 'tirar' crea una excepció quan es troba un error que ens permet escriure el nostre codi únic. Mitjançant l'expressió 'catch', podem especificar un bloc de codi que s'executarà si apareix una excepció a la part 'prova'.