diff options
author | Morgan Deters <mdeters@gmail.com> | 2009-11-17 17:09:13 +0000 |
---|---|---|
committer | Morgan Deters <mdeters@gmail.com> | 2009-11-17 17:09:13 +0000 |
commit | 105503064be6a198dd864d1e95d6d79e1af51d25 (patch) | |
tree | 040d1dfc2d696c2efef84cf2cb044072d97a337a /src/util/exception.h | |
parent | 61330b862f7b5565f70e3c1f4d26a8c51a0f534a (diff) |
from meeting
Diffstat (limited to 'src/util/exception.h')
-rw-r--r-- | src/util/exception.h | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/src/util/exception.h b/src/util/exception.h new file mode 100644 index 000000000..792a98701 --- /dev/null +++ b/src/util/exception.h @@ -0,0 +1,48 @@ +/********************* -*- C++ -*- */ +/** exception.h + ** This file is part of the CVC4 prototype. + ** Copyright (c) 2009 The Analysis of Computer Systems Group (ACSys) + ** Courant Institute of Mathematical Sciences + ** New York University + ** See the file COPYING in the top-level source directory for licensing + ** information. + ** + ** Exception class. + **/ + +#ifndef __CVC4_EXCEPTION_H +#define __CVC4_EXCEPTION_H + +#include <string> +#include <iostream> + +namespace CVC4 { + + class Exception { + protected: + std::string d_msg; + public: + // Constructors + Exception(): d_msg("Unknown exception") { } + Exception(const std::string& msg): d_msg(msg) { } + Exception(const char* msg): d_msg(msg) { } + // Destructor + virtual ~Exception() { } + // NON-VIRTUAL METHODs for setting and printing the error message + void setMessage(const std::string& msg) { d_msg = msg; } + // Printing: feel free to redefine toString(). When inherited, + // it's recommended that this method print the type of exception + // before the actual message. + virtual std::string toString() const { return d_msg; } + // No need to overload operator<< for the inherited classes + friend std::ostream& operator<<(std::ostream& os, const Exception& e); + + }; // end of class Exception + + inline std::ostream& operator<<(std::ostream& os, const Exception& e) { + return os << e.toString(); + } + +}/* CVC4 namespace */ + +#endif /* __CVC4_EXCEPTION_H */ |