CLHEP VERSION Reference Documentation
CLHEP Home Page
CLHEP Documentation
CLHEP Bug Reports
Main Page
Namespaces
Classes
Files
File List
File Members
Exceptions
test
exctest3.cc
Go to the documentation of this file.
1
// Test program to check out the environment exception-handling
2
3
#include <iostream>
4
using
std::cerr;
5
using
std::endl;
6
7
8
class
Exception
{
9
public
:
10
Exception
(
const
char
[] ) {}
11
virtual
~Exception
() {}
12
virtual
void
f
()
const
{ cerr <<
"Exception::f()"
<< endl; }
13
};
14
15
16
class
Oops
:
public
Exception
{
17
public
:
18
Oops
(
const
char
s[] ) :
Exception
( s ) {}
19
virtual
~Oops
() {}
20
virtual
void
f
()
const
{ cerr <<
"Oops::f()"
<< endl; }
21
};
22
23
24
int
main
() {
25
26
try
{
27
cerr <<
"Starting main() ..."
<< endl;
28
cerr <<
"About to: throw( Oops(\"Ouch\") )"
<< endl;
29
30
try
{
throw
Oops
(
"Ouch"
); }
31
catch
(
const
Exception
& x ) {
32
x.
f
();
33
throw
;
34
}
35
catch
( ... ) {
36
cerr <<
"Caught unknown!"
<< endl;
37
throw
;
38
}
39
40
// Unreachable statement (we certainly hope!):
41
cerr <<
"The following ought to produce a compilation warning \n"
42
<<
"Got past: throw( Oops(\"Ouch\") ) -- not good!"
<< endl;
43
}
44
catch
(
const
Oops
& egad ) {
45
cerr <<
"Caught: Oops"
<< endl;
46
}
47
catch
(
const
Exception
& egad ) {
48
cerr <<
"Caught: Exception"
<< endl;
49
}
50
catch
( ... ) {
51
cerr <<
"Caught: don't know what"
<< endl;
52
}
53
54
cerr <<
"Done."
<< endl;
55
return
0;
56
57
}
// main()
Generated on Sun Jun 17 2012 08:08:26 for CLHEP by
1.8.1.1