summaryrefslogtreecommitdiffstats
path: root/labb8/lib/StanfordCPPLib/error.h
diff options
context:
space:
mode:
Diffstat (limited to 'labb8/lib/StanfordCPPLib/error.h')
-rwxr-xr-xlabb8/lib/StanfordCPPLib/error.h56
1 files changed, 56 insertions, 0 deletions
diff --git a/labb8/lib/StanfordCPPLib/error.h b/labb8/lib/StanfordCPPLib/error.h
new file mode 100755
index 0000000..359ea99
--- /dev/null
+++ b/labb8/lib/StanfordCPPLib/error.h
@@ -0,0 +1,56 @@
+/*
+ * File: error.h
+ * -------------
+ * This file defines the <code>ErrorException</code> class and the
+ * <code>error</code> function.
+ */
+
+#ifndef _error_h
+#define _error_h
+
+#include <string>
+#include <exception>
+
+/*
+ * Class: ErrorException
+ * ---------------------
+ * This exception is thrown by calls to the <code>error</code>
+ * function. Typical code for catching errors looks like this:
+ *
+ *<pre>
+ * try {
+ * ... code in which an error might occur ...
+ * } catch (ErrorException & ex) {
+ * ... code to handle the error condition ...
+ * }
+ *</pre>
+ *
+ * If an <code>ErrorException</code> is thrown at any point in the
+ * range of the <code>try</code> (including in functions called from
+ * that code), control will jump immediately to the error handler.
+ */
+
+class ErrorException : public std::exception {
+public:
+ ErrorException(std::string msg);
+ virtual ~ErrorException() throw ();
+ virtual std::string getMessage() const;
+ virtual const char *what() const throw ();
+
+private:
+ std::string msg;
+};
+
+/*
+ * Function: error
+ * Usage: error(msg);
+ * ------------------
+ * Signals an error condition in a program by throwing an
+ * <code>ErrorException</code> with the specified message.
+ */
+
+void error(std::string msg);
+
+#include "private/main.h"
+
+#endif