forked from OSchip/llvm-project
43 lines
696 B
C++
43 lines
696 B
C++
#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;
|
|
}
|