mirror of
https://github.com/Gericom/teak-llvm.git
synced 2025-06-21 12:35:47 -04:00

This is the conclusion of an effort to get LLDB's Python code structured into a bona-fide Python package. This has a number of benefits, but most notably the ability to more easily share Python code between different but related pieces of LLDB's Python infrastructure (for example, `scripts` can now share code with `test`). llvm-svn: 251532
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;
|
|
}
|