cpp:stack_unwinding

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Last revision Both sides next revision
cpp:stack_unwinding [2021/05/25 07:59]
gthanos
cpp:stack_unwinding [2023/05/15 14:12]
gthanos
Line 3: Line 3:
 Κατά την δημιουργία ενός //exception// μέσα σε μία συνάρτηση ή σε ένα κατασκευαστή δεν είναι απαραίτητο ότι η διαχείριση του //exception// θα πρέπει να γίνει στην ίδια τη συνάρτηση ή τον καστασκευαστή. Η διαδικασία όνομάζεται //stack unwinding// και το παράδειγμα που ακολουθεί είναι εξαρειτικά διαφωτιστικό για το πως διαμορφώνεται το stack μετά από την διαχείριση μίας εξαίρεσης σε υψηλότερο επίπεδο. Κατά την δημιουργία ενός //exception// μέσα σε μία συνάρτηση ή σε ένα κατασκευαστή δεν είναι απαραίτητο ότι η διαχείριση του //exception// θα πρέπει να γίνει στην ίδια τη συνάρτηση ή τον καστασκευαστή. Η διαδικασία όνομάζεται //stack unwinding// και το παράδειγμα που ακολουθεί είναι εξαρειτικά διαφωτιστικό για το πως διαμορφώνεται το stack μετά από την διαχείριση μίας εξαίρεσης σε υψηλότερο επίπεδο.
  
-<code cpp StackUnwinding.cpp>+<code cpp Vector.hpp>
 #include <iostream> #include <iostream>
 #include <cstdlib> #include <cstdlib>
Line 16: Line 16:
   ~Vector();   ~Vector();
 }; };
 +</code>
  
 +<code cpp Vector.cpp>
 Vector::Vector(int length) { Vector::Vector(int length) {
   cout << "Create vector of size: " << length << endl;   cout << "Create vector of size: " << length << endl;
Line 33: Line 35:
   delete [] array;   delete [] array;
 } }
 +</code>
  
 +<code cpp StackUnwinding.cpp>
 +#include <iostream>
 +#include <cstdlib>
 +using namespace std;
  
 // called by FFF() // called by FFF()
cpp/stack_unwinding.txt · Last modified: 2023/05/15 14:13 by gthanos