This shows you the differences between two versions of the page.
| Both sides previous revision Previous revision | Next revision Both sides next revision | ||
|
cpp:exception_rethrow [2019/05/06 08:41] gthanos [Διαχείριση εξαίρεσης και παραγωγή νέας εξαίρεσης κατά τη διαχείριση της] |
cpp:exception_rethrow [2020/05/05 10:08] gthanos [Διαχείριση εξαίρεσης και παραγωγή νέας εξαίρεσης κατά τη διαχείριση της] |
||
|---|---|---|---|
| Line 73: | Line 73: | ||
| try{ | try{ | ||
| imgptr = new PPMImage(argv[1]); | imgptr = new PPMImage(argv[1]); | ||
| + | delete imgptr; | ||
| } | } | ||
| catch(ios_base:: | catch(ios_base:: | ||
| Line 79: | Line 80: | ||
| catch(bad_alloc &ex) { | catch(bad_alloc &ex) { | ||
| cerr << " | cerr << " | ||
| - | if (imgptr!=nullptr) | + | if (imgptr!=nullptr) |
| cerr << " | cerr << " | ||
| + | delete imgptr; | ||
| + | } | ||
| else | else | ||
| cerr << " | cerr << " | ||
| } | } | ||
| - | delete imgptr; | ||
| return 0; | return 0; | ||
| } | } | ||
| Line 98: | Line 100: | ||
| </ | </ | ||
| - | Από τον παραπάνω κώδικα μπορούμε να συμπεράνουμε τα εξής: | + | Από τον παραπάνω κώδικα μπορούμε να συμπεράνουμε |
| - | - Εφόσον παράγεται ένα // | + | |
| - | - Εάν εφαρμόσω τον τελεστή **delete** σε ένα δείκτη που έχει την τιμή **nullptr**, | + | |
| ===== Παραλλαγή του παραπάνω παραδείγματος ===== | ===== Παραλλαγή του παραπάνω παραδείγματος ===== | ||