1*99451b44SJordan Rupprecht #include <exception> 2*99451b44SJordan Rupprecht #include <stdio.h> 3*99451b44SJordan Rupprecht 4*99451b44SJordan Rupprecht int throws_exception_on_even (int value); 5*99451b44SJordan Rupprecht int intervening_function (int value); 6*99451b44SJordan Rupprecht int catches_exception (int value); 7*99451b44SJordan Rupprecht 8*99451b44SJordan Rupprecht int catches_exception(int value)9*99451b44SJordan Rupprechtcatches_exception (int value) 10*99451b44SJordan Rupprecht { 11*99451b44SJordan Rupprecht try 12*99451b44SJordan Rupprecht { 13*99451b44SJordan Rupprecht return intervening_function(value); // This is the line you should stop at for catch 14*99451b44SJordan Rupprecht } 15*99451b44SJordan Rupprecht catch (int value) 16*99451b44SJordan Rupprecht { 17*99451b44SJordan Rupprecht return value; 18*99451b44SJordan Rupprecht } 19*99451b44SJordan Rupprecht } 20*99451b44SJordan Rupprecht 21*99451b44SJordan Rupprecht int intervening_function(int value)22*99451b44SJordan Rupprechtintervening_function (int value) 23*99451b44SJordan Rupprecht { 24*99451b44SJordan Rupprecht return throws_exception_on_even (2 * value); 25*99451b44SJordan Rupprecht } 26*99451b44SJordan Rupprecht 27*99451b44SJordan Rupprecht int throws_exception_on_even(int value)28*99451b44SJordan Rupprechtthrows_exception_on_even (int value) 29*99451b44SJordan Rupprecht { 30*99451b44SJordan Rupprecht printf ("Mod two works: %d.\n", value%2); 31*99451b44SJordan Rupprecht if (value % 2 == 0) 32*99451b44SJordan Rupprecht throw 30; 33*99451b44SJordan Rupprecht else 34*99451b44SJordan Rupprecht return value; 35*99451b44SJordan Rupprecht } 36*99451b44SJordan Rupprecht 37*99451b44SJordan Rupprecht int main()38*99451b44SJordan Rupprechtmain () 39*99451b44SJordan Rupprecht { 40*99451b44SJordan Rupprecht catches_exception (10); // Stop here 41*99451b44SJordan Rupprecht return 5; 42*99451b44SJordan Rupprecht } 43