Diferență între revizuiri ale paginii „C++ POO Lab Lucrarea 5”

De la WikiLabs
Jump to navigationJump to search
Linia 23: Linia 23:
  
 
===Exemplu===
 
===Exemplu===
 +
 +
<syntaxhighlight lang="C++">
 +
#include <iostream>
 +
using namespace std;
 +
 +
int main(){
 +
    try {
 +
        int nota_mate = 4;
 +
        if (nota_mate >= 5) {
 +
            cout << "Promovat";
 +
        } else {
 +
            //aruncam eroarea
 +
            throw 101;
 +
        }
 +
    }
 +
    catch (int err) {
 +
        //tratam eroarea
 +
        cout << "Picat\n";
 +
        cout << "Err: " << err;
 +
    }
 +
}
 +
</syntaxhighlight>

Versiunea de la data 2 aprilie 2022 19:28

Introducere

Această lucrare are ca scop familiarizarea cu excepțiile.

La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.

Când apare o eroare, execuția se va opri și va genera un mesaj de eroare. Acest lucru se numește aruncarea unei o excepții.


Try, throw and catch

Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: try, throw și catch .

Pentru a se prinde excepțiile, codul respectiv se include într-un bloc try, unde putem testa dacă exista erori în timp ce executam codul.

Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.

O excepție este aruncată utilizând cuvântului throw din interiorul blocului try.

Cuvântul cheie throw ne permite sa definim excepții personalizate.

Manipularea de excepții se face prin cuvântul catch, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul try .

Exemplu

#include <iostream>
using namespace std;

int main(){
    try {
        int nota_mate = 4;
        if (nota_mate >= 5) {
            cout << "Promovat";
        } else {
            //aruncam eroarea
            throw 101;
        }
    }
    catch (int err) {
        //tratam eroarea
        cout << "Picat\n";
        cout << "Err: " << err;
    }
}