Com gestionar les excepcions fàcilment en C++

Com Gestionar Les Excepcions Facilment En C



Els esdeveniments inesperats que tenen lloc mentre el programa s'executa s'anomenen excepcions o errors. Les excepcions es produeixen durant el temps d'execució i no es poden detectar durant la compilació, de manera que poden causar problemes greus al programa. Manejar bé les excepcions en un programa C++ és un objectiu primordial per a un programador per obtenir els resultats desitjats.

Com gestionar les excepcions fàcilment en C++

El maneig d'excepcions en C++ es refereix al mecanisme per detectar errors en temps d'execució i gestionar-los de manera eficient, com ara la gestió d'entrades no vàlides, la divisió d'un nombre per zero en operacions de divisió i molts més.

El maneig d'excepcions en C++ implica tres paraules clau: provar, llançar i atrapar. La instrucció try permet a l'usuari definir el bloc de codi que pot generar una excepció al codi. La paraula clau throw genera una excepció si es detecta després de comprovar el bloc sota la paraula clau try. La paraula clau catch conté el bloc de codi que pot gestionar l'excepció observada al bloc try.







Exemple 1: Gestió d'excepcions durant la divisió

El codi s'escriu per comprovar les excepcions durant la divisió.



#inclou
utilitzant espai de noms std ;

int principal ( ) {

doble numerador, denominador, divisió ;

cout << 'Introduïu un valor de numerador:' ;
menjant >> numerador ;

cout <> denominador ;

provar {


si ( denominador == 0 )
llançar 0 ;


divisió = numerador / denominador ;
cout << numerador << ' / ' << denominador << ' = ' << divisió << endl ;
}

agafar ( int num_excepció ) {
cout << 'Error! El divisor no pot ser ' << num_excepció << endl ;
}

tornar 0 ;
}

En aquest programa, l'usuari introdueix el valor del numerador i denominador declarat a la secció main(). Al bloc try, s'utilitza una instrucció if per comprovar l'excepció que és si el denominador és zero o no. Com que la divisió no es pot dur a terme amb un divisor zero si es troba que el denominador és 0, llançarà una excepció i el bloc catch retornarà un argument d'error en cas contrari es realitzarà l'operació de divisió simple.







L'usuari introdueix un numerador 42 i un 0 al denominador, que genera una excepció, de manera que el programa retorna l'argument d'error.



L'usuari introdueix un numerador 42 i 2 com a denominador, ja que no s'ha trobat cap excepció, el resultat després de la divisió torna.

Exemple 2 Gestió d'excepcions per comprovar l'edat

Aquest programa verifica les excepcions en l'edat de l'usuari.

#inclou
utilitzant espai de noms std ;

/*
Aquí, volem llançar una excepció (edat com a excepció) si l'edat de la persona és menor de 18 anys.
*/

int principal ( )
{
// comprovant si l'edat és superior als 18 anys al bloc try.
provar
{
int edat ;
cout << 'Introdueix la teva edat per accedir a:' ;
menjant >> edat ;

si ( edat >= 18 )
{
cout << 'Accés garantit.' ;
}
// S'està llançant una excepció personalitzada si l'edat és menor de 18 anys.
altra cosa
{
llançar ( edat ) ;
}
}
// captura l'excepció llançada i mostra la sortida desitjada (accés denegat!)
agafar ( int x )
{
cout << 'Accés denegat! Ets menor d'edat.' << endl ;
}
tornar 0 ;
}

En aquest programa, es defineix una variable amb un valor enter. Se li demana a l'usuari que introdueixi l'edat i que proveu comprovacions de bloqueig si l'edat de l'usuari és superior o igual a 18 anys. Si no és cert, llançarà una excepció i el bloc d'excepcions retornarà Accés denegat! Argumentació. En cas contrari, es concedirà l'accés.

L'usuari introdueix l'edat de 12 anys per comprovar la concessió d'accés, ja que aquesta edat és menor de 18 anys, de manera que es retorna l'argument Accés denegat.

L'usuari introdueix 20 anys, ja que és superior als 18, de manera que l'accés es concedeix a l'usuari.

Nota : Si no hi ha cap bloc catch al programa, el programa es comportarà de manera anormal i finalitzarà inesperadament en cas d'excepcions.

Conclusió

El maneig d'excepcions en C++ es refereix al mecanisme per detectar errors en temps d'execució i gestionar-los de manera eficient. Implica tres paraules clau provar, llançar i atrapar. L'excepció es verifica pel codi del bloc try, la paraula clau throw llança l'excepció si es troba i el bloc catch gestiona l'excepció llançada per al bloc try. El maneig d'excepcions fa que l'experiència de l'usuari sigui fàcil i excel·lent evitant errors en temps d'execució.