cpp:exception_rethrow
Differences
This shows you the differences between two versions of the page.
| Both sides previous revisionPrevious revisionNext revision | Previous revision | ||
| cpp:exception_rethrow [2019/05/06 08:41] – [Διαχείριση εξαίρεσης και παραγωγή νέας εξαίρεσης κατά τη διαχείριση της] gthanos | cpp:exception_rethrow [Unknown date] (current) – external edit (Unknown date) 127.0.0.1 | ||
|---|---|---|---|
| Line 42: | Line 42: | ||
| for(int row=0; row< | for(int row=0; row< | ||
| for(int col=0; col< | for(int col=0; col< | ||
| - | | + | |
| red = (unsigned char) atoi(str.c_str()); | red = (unsigned char) atoi(str.c_str()); | ||
| - | | + | |
| green = (unsigned char) atoi(str.c_str()); | green = (unsigned char) atoi(str.c_str()); | ||
| - | | + | |
| blue = (unsigned char) atoi(str.c_str()); | blue = (unsigned char) atoi(str.c_str()); | ||
| raster[row][col] = 0; | raster[row][col] = 0; | ||
| 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**, | + | |
| ===== Παραλλαγή του παραπάνω παραδείγματος ===== | ===== Παραλλαγή του παραπάνω παραδείγματος ===== | ||
cpp/exception_rethrow.1557132115.txt.gz · Last modified: 2019/05/06 07:41 (external edit)
