| #include <exception> |
| #include <stdio.h> |
| |
| int throws_exception_on_even (int value); |
| int intervening_function (int value); |
| int catches_exception (int value); |
| |
| int |
| catches_exception (int value) |
| { |
| try |
| { |
| return intervening_function(value); // This is the line you should stop at for catch |
| } |
| catch (int value) |
| { |
| return value; |
| } |
| } |
| |
| int |
| intervening_function (int value) |
| { |
| return throws_exception_on_even (2 * value); |
| } |
| |
| int |
| throws_exception_on_even (int value) |
| { |
| printf ("Mod two works: %d.\n", value%2); |
| if (value % 2 == 0) |
| throw 30; |
| else |
| return value; |
| } |
| |
| int |
| main () |
| { |
| catches_exception (10); // Stop here |
| return 5; |
| } |