<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ro">
	<id>http://wiki.dcae.pub.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ionut.dragomir0705</id>
	<title>WikiLabs - Contribuții utilizator [ro]</title>
	<link rel="self" type="application/atom+xml" href="http://wiki.dcae.pub.ro/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Ionut.dragomir0705"/>
	<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php/Special:Contribu%C8%9Bii/Ionut.dragomir0705"/>
	<updated>2026-05-27T15:27:20Z</updated>
	<subtitle>Contribuții utilizator</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7286</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7286"/>
		<updated>2022-04-02T21:05:18Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
Când apare o eroare, execuția se va opri și va genera un mesaj de eroare. Acest lucru se numește aruncarea unei excepții.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;. Acesta ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre acestea este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Standard error stream (&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039;) =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039; este fluxul de erori standard care este utilizat pentru a afișa erorile. &lt;br /&gt;
&lt;br /&gt;
Este folosit atunci când vrem să afișăm imediat mesajul de eroare și nu sa stocam mesajul pentru a fi afișat mai târziu.&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout1\n&amp;quot;;&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;cerr\n&amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout2\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
cerr&lt;br /&gt;
cout1&lt;br /&gt;
cout2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7285</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7285"/>
		<updated>2022-04-02T21:03:48Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
Când apare o eroare, execuția se va opri și va genera un mesaj de eroare. Acest lucru se numește aruncarea unei excepții.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;. Acesta ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Standard error stream (&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039;) =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039; este fluxul de erori standard care este utilizat pentru a afișa erorile. &lt;br /&gt;
&lt;br /&gt;
Este folosit atunci când vrem să afișăm imediat mesajul de eroare și nu sa stocam mesajul pentru a fi afișat mai târziu.&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout1\n&amp;quot;;&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;cerr\n&amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout2\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
cerr&lt;br /&gt;
cout1&lt;br /&gt;
cout2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7284</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7284"/>
		<updated>2022-04-02T21:03:37Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
Când apare o eroare, execuția se va opri și va genera un mesaj de eroare. Acest lucru se numește aruncarea unei excepții.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;.Acesta ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Standard error stream (&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039;) =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039; este fluxul de erori standard care este utilizat pentru a afișa erorile. &lt;br /&gt;
&lt;br /&gt;
Este folosit atunci când vrem să afișăm imediat mesajul de eroare și nu sa stocam mesajul pentru a fi afișat mai târziu.&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout1\n&amp;quot;;&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;cerr\n&amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout2\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
cerr&lt;br /&gt;
cout1&lt;br /&gt;
cout2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7283</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7283"/>
		<updated>2022-04-02T21:01:37Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
Când apare o eroare, execuția se va opri și va genera un mesaj de eroare. Acest lucru se numește aruncarea unei excepții.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Standard error stream (&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039;) =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039; este fluxul de erori standard care este utilizat pentru a afișa erorile. &lt;br /&gt;
&lt;br /&gt;
Este folosit atunci când vrem să afișăm imediat mesajul de eroare și nu sa stocam mesajul pentru a fi afișat mai târziu.&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout1\n&amp;quot;;&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;cerr\n&amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout2\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
cerr&lt;br /&gt;
cout1&lt;br /&gt;
cout2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7282</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7282"/>
		<updated>2022-04-02T20:57:25Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= Standard error stream (&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039;) =&lt;br /&gt;
&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;cerr&amp;#039;&amp;#039;&amp;#039; este fluxul de erori standard care este utilizat pentru a afișa erorile. &lt;br /&gt;
&lt;br /&gt;
Este folosit atunci când vrem să afișăm imediat mesajul de eroare și nu sa stocam mesajul pentru a fi afișat mai târziu.&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout1\n&amp;quot;;&lt;br /&gt;
    cerr &amp;lt;&amp;lt; &amp;quot;cerr\n&amp;quot;;&lt;br /&gt;
    cout &amp;lt;&amp;lt; &amp;quot;cout2\n&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
cerr&lt;br /&gt;
cout1&lt;br /&gt;
cout2&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7281</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7281"/>
		<updated>2022-04-02T20:44:13Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7280</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7280"/>
		<updated>2022-04-02T20:42:29Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Aruncarea de erori multiple=&lt;br /&gt;
&lt;br /&gt;
=== Exemplu ===&lt;br /&gt;
&lt;br /&gt;
În exemplul dat aruncam mai multe erori în interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
Prima eroare este de tip int, iar a doua de tip std::string.&lt;br /&gt;
În momentul în care este aruncată prima excepție, controlul programului este transferat la o clauza catch. Ceea ce înseamnă ca restul codului din blocul try nu va fi executat.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;string&amp;gt;&lt;br /&gt;
&lt;br /&gt;
using namespace std;&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        bool check1 = true;&lt;br /&gt;
        bool check2 = true;&lt;br /&gt;
&lt;br /&gt;
        if (check1)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 1&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw 404;&lt;br /&gt;
        }&lt;br /&gt;
        if(check2)&lt;br /&gt;
        {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Eroare 2&amp;quot; &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
            throw string{ &amp;quot;393&amp;quot; };&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    catch (string&amp;amp; e)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Eroare: &amp;quot; &amp;lt;&amp;lt; e &amp;lt;&amp;lt; &amp;#039;\n&amp;#039;;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Eroare 1&lt;br /&gt;
Eroare: 404&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7279</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7279"/>
		<updated>2022-04-02T20:18:31Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7278</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7278"/>
		<updated>2022-04-02T20:17:33Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Constructor implicit &amp;#039;&amp;#039;&amp;#039;what()&amp;#039;&amp;#039;&amp;#039; returnează un șir definit de implementare.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7277</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7277"/>
		<updated>2022-04-02T20:12:54Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7276</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7276"/>
		<updated>2022-04-02T20:03:10Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
Notele de la bacalaureat trebuie sa fie numere pozitive&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7275</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7275"/>
		<updated>2022-04-02T20:01:31Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
= &amp;#039;&amp;#039;&amp;#039;&amp;lt;stdexcept&amp;gt;&amp;#039;&amp;#039;&amp;#039; =&lt;br /&gt;
&lt;br /&gt;
Aceasta biblioteca conține un set de excepții standard pe care programul le poate folosi pentru a raporta erori.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
În acest exemplu, funcția medieBac() este apelată în interiorul blocului try din main. Funcția medieBac() așteaptă sa primească ca argument 3 numere întregi și aruncă o excepție invalid_argument dacă oricare dintre ele este negativ.&lt;br /&gt;
&lt;br /&gt;
Clasa std::invalid_argument este definită în biblioteca &amp;lt;stdexcept&amp;gt;. Această clasă definește tipurile de obiecte care trebuie aruncate ca excepții și raportează erori care apar deoarece o valoare a argumentului nu a fost acceptată.&lt;br /&gt;
&lt;br /&gt;
Blocul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; din funcția main prinde excepția invalid_argument și o tratează.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
#include &amp;lt;stdexcept&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
double medieBac(int romana, int mate, int info)&lt;br /&gt;
{&lt;br /&gt;
    if (mate &amp;lt; 0 || romana &amp;lt; 0 || info &amp;lt; 0)&lt;br /&gt;
        throw invalid_argument(&amp;quot;Notele de la bacalaureat trebuie sa fie numere pozitive&amp;quot;);&lt;br /&gt;
    return (mate + info + romana) / 2.;&lt;br /&gt;
}&lt;br /&gt;
int main()&lt;br /&gt;
{&lt;br /&gt;
    try&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; medieBac(-1, 8, 10); &lt;br /&gt;
    }&lt;br /&gt;
    catch (invalid_argument&amp;amp; err)&lt;br /&gt;
    {&lt;br /&gt;
        cout &amp;lt;&amp;lt; err.what() &amp;lt;&amp;lt; endl;&lt;br /&gt;
    }&lt;br /&gt;
    return 0;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7274</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7274"/>
		<updated>2022-04-02T19:30:21Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Output:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
Picat&lt;br /&gt;
Err: 101&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7273</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7273"/>
		<updated>2022-04-02T19:28:41Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;C++&amp;quot;&amp;gt;&lt;br /&gt;
#include &amp;lt;iostream&amp;gt;&lt;br /&gt;
using namespace std;&lt;br /&gt;
&lt;br /&gt;
int main(){&lt;br /&gt;
    try {&lt;br /&gt;
        int nota_mate = 4;&lt;br /&gt;
        if (nota_mate &amp;gt;= 5) {&lt;br /&gt;
            cout &amp;lt;&amp;lt; &amp;quot;Promovat&amp;quot;;&lt;br /&gt;
        } else {&lt;br /&gt;
            //aruncam eroarea&lt;br /&gt;
            throw 101;&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
    catch (int err) {&lt;br /&gt;
        //tratam eroarea&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Picat\n&amp;quot;;&lt;br /&gt;
        cout &amp;lt;&amp;lt; &amp;quot;Err: &amp;quot; &amp;lt;&amp;lt; err;&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7272</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7272"/>
		<updated>2022-04-02T19:14:02Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
Manipularea de excepții se face prin cuvântul &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039;, care ne permite sa definim un bloc de cod care sa fie executat în cazul în care apare o eroare în blocul &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7271</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7271"/>
		<updated>2022-04-02T19:10:13Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc de tip &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
&lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
O excepție este aruncată utilizând cuvântului &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; din interiorul blocului &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
Cuvântul cheie &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; ne permite sa definim excepții personalizate.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7270</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7270"/>
		<updated>2022-04-02T19:04:37Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc de tip &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, unde putem testa dacă exista erori în timp ce executam codul. &lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;br /&gt;
&lt;br /&gt;
===Exemplu===&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7269</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7269"/>
		<updated>2022-04-02T18:59:38Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;br /&gt;
&lt;br /&gt;
Pentru a se prinde excepțiile, codul respectiv se include într-un bloc de tip &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
Dacă nu exista erori în secțiunea respectiva, execuția programului continuă normal.&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7268</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7268"/>
		<updated>2022-04-02T18:53:25Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie: &amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, &amp;#039;&amp;#039;&amp;#039;throw&amp;#039;&amp;#039;&amp;#039; și &amp;#039;&amp;#039;&amp;#039;catch&amp;#039;&amp;#039;&amp;#039; .&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7267</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7267"/>
		<updated>2022-04-02T18:53:02Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Try, throw and catch =&lt;br /&gt;
&lt;br /&gt;
Gestionarea excepțiilor în C++ se face folosind cele trei cuvinte cheie:&amp;#039;&amp;#039;&amp;#039;try&amp;#039;&amp;#039;&amp;#039;, throw și catch .&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7266</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7266"/>
		<updated>2022-04-02T18:35:01Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
	<entry>
		<id>http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7265</id>
		<title>C++ POO Lab Lucrarea 5</title>
		<link rel="alternate" type="text/html" href="http://wiki.dcae.pub.ro/index.php?title=C%2B%2B_POO_Lab_Lucrarea_5&amp;diff=7265"/>
		<updated>2022-04-02T18:34:29Z</updated>

		<summary type="html">&lt;p&gt;Ionut.dragomir0705: Pagină nouă: = 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 gr...&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;= Introducere =&lt;br /&gt;
&lt;br /&gt;
Această lucrare are ca scop familiarizarea cu excepțiile.&lt;br /&gt;
La compilarea codului pot apărea diferite erori făcute de programator, erori datorate introducerii greșite sau alte lucruri neprevăzute.&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Ionut.dragomir0705</name></author>
	</entry>
</feed>