summaryrefslogtreecommitdiff
path: root/reference/CPLUSPLUS/EXAMPLES/throw.cc
diff options
context:
space:
mode:
authorTobias Klauser <tklauser@distanz.ch>2008-01-27 11:37:44 +0100
committerTobias Klauser <tklauser@xenon.tklauser.home>2008-01-27 11:37:44 +0100
commit7e0f021a9aec35fd8e6725e87e3313b101d26f5e (patch)
treeb1cacc4b24393f517aeb4610e9e1021f954307a8 /reference/CPLUSPLUS/EXAMPLES/throw.cc
Initial import (2.0.2-6)2.0.2-6
Diffstat (limited to 'reference/CPLUSPLUS/EXAMPLES/throw.cc')
-rw-r--r--reference/CPLUSPLUS/EXAMPLES/throw.cc43
1 files changed, 43 insertions, 0 deletions
diff --git a/reference/CPLUSPLUS/EXAMPLES/throw.cc b/reference/CPLUSPLUS/EXAMPLES/throw.cc
new file mode 100644
index 0000000..ca86673
--- /dev/null
+++ b/reference/CPLUSPLUS/EXAMPLES/throw.cc
@@ -0,0 +1,43 @@
+
+/**************************************************************************
+ *
+ * Language: C++
+ * Purpose: Program to demonstrate the 'try', 'catch' and 'throw' statements.
+ * Author: M J Leslie
+ * Date: 21-Mar-98
+ *
+ * Compile: The following command was used to compile.
+ *
+ * g++ -fhandle-exceptions throw.cc -o throw
+ *
+ **************************************************************************/
+
+#include <iostream.h> // For cout.
+
+void ErrorFunc(int Error);
+
+main()
+{
+ ErrorFunc(0);
+ ErrorFunc(1);
+}
+void ErrorFunc(int Error)
+{
+ try
+ {
+ cout << "Error code is " << Error << endl;
+
+ if (Error > 0 )
+ {
+ throw(Error); // This statement causes control to jump
+ // to the 'catch' statement
+ }
+
+ cout << "No Error occoured" << endl;
+
+ }
+ catch(int n)
+ {
+ cout << "Error number is " << n << endl;;
+ }
+}