User Tools

Site Tools


cpp:exception

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revisionBoth sides next revision
cpp:exception [2021/05/07 14:38] gthanoscpp:exception [2021/05/07 14:42] – [Δημιουργία και Διαχείριση Εξαιρέσεων] gthanos
Line 107: Line 107:
       Vector v(size);       Vector v(size);
     } catch(std::bad_alloc ex) {     } catch(std::bad_alloc ex) {
-      cout << "Vector size should be a positive integer! Retry...\n"; +      if(size<=0) { 
-      continue;+        cout << "Vector size should be a positive integer! Retry...\n"; 
 +        continue
 +      } 
 +      exit(-1);
     }     }
     for(int i=0; i<size; i++)     for(int i=0; i<size; i++)
Line 117: Line 120:
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
-Στο παραπάνω απλό παράδειγμα είναι προφανές ότι είναι πιο απλό να ελέγξει κανείς το μέγεθος της παραμέτρου //size// πριν καλέσει τον κατασκευαστή. Σε αυτή την περίπτωση, ο έλεγχος θα πρέπει να γίνεται από το χρήστη της εκάστοτε βιβλιοθήκηςενώ η βιβλιοθήκη δεν παρέχει καμία εγγύηση για τον τρόπο συμπεριφοράς της εάν περαστούν λανθασμένα ορίσματα. Τα //exceptions// εξασφαλίζουν ότι η βιβλιοθήκη θα παράξει μία εξαίρεση εάν η δέσμευση της μνήμης αποτύχει.+Στο παραπάνω απλό παράδειγμα είναι προφανές ότι είναι πιο απλό να ελέγξει κανείς το μέγεθος της παραμέτρου //size// πριν καλέσει τον κατασκευαστή. Σε αυτή την περίπτωση, ο έλεγχος θα πρέπει να γίνεται από το χρήστη του κατασκευαστή. Η χρήση της εξαίρεσης μεταθέτει τον έλεγχο μόνο στην περίπτωση που αποτύχει η δέσμευση της μνήμης.
 </WRAP> </WRAP>
  
cpp/exception.txt · Last modified: 2023/05/15 14:01 by gthanos