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 [2018/05/19 09:30] – [Stack Unwinding] gthanoscpp:exception [2018/05/20 14:17] – [Δημιουργία και διαχείριση της εξαίρεσης] gthanos
Line 133: Line 133:
 ===== Δημιουργία και διαχείριση της εξαίρεσης ===== ===== Δημιουργία και διαχείριση της εξαίρεσης =====
  
-Όπως σε όλες τις γλώσσες αντικειμενοστραφούς προγραμματισμού η παραγωγή μιας εξαίρεσης θα πρέπει να γίνει μέσα σε ένα //try block// και η διαχείριση της μέσα σε ένα //catch block// που ακολουθεί το //try block//. Δείτε το παρακάτω ενδεικτικό παράδειγμα.+Όπως σε όλες τις γλώσσες αντικειμενοστραφούς προγραμματισμού η παραγωγή μιας εξαίρεσης θα πρέπει να γίνει μέσα σε ένα //try block// και η διαχείριση της μέσα σε ένα //catch block// που ακολουθεί το //try block//. Δείτε το παρακάτω ενδεικτικό παράδειγμα, όπου ανάλογα με την είσοδο που βάζει ο χρήστης παράγεται διαφορετικού τύπου //exception//
  
 <code cpp ExceptionHandling.cpp> <code cpp ExceptionHandling.cpp>
Line 183: Line 183:
   } catch(const MyException &ex) {   } catch(const MyException &ex) {
     cout << "Got '"<< ex.what() <<"'!\n";     cout << "Got '"<< ex.what() <<"'!\n";
-  } catch(...) {+  } catch(...) {    // catch any exception not caught above!
     cout << "Got an exception of unknown type!\n";     cout << "Got an exception of unknown type!\n";
   }   }
Line 189: Line 189:
 } }
 </code> </code>
 +
 +<WRAP info 80% center round>
 +Στον παραπάνω κώδικα το //catch block//
 +<code cpp>
 +  } catch(...) {     // catch any exception not caught above!
 +    cout << "Got an exception of unknown type!\n";
 +  }
 +</code>
 +πιάνει όλους τους τύπους //exception// που δεν πιάστηκαν στα προηγούμενα //catch blocks//. Τοποθετώντας ένα //catch block// αυτής της μορφής είναι δυνατόν να εφαρμόσετε ένα τελικό έλεγχο για τύπους εξαιρέσεων που δεν έχετε προβλέψει ότι μπορούν να παραχθούν παραπάνω στον κώδικα σας.
 +</WRAP>
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
cpp/exception.txt · Last modified: 2023/05/15 14:01 by gthanos