Escript  Revision_4320
RipleyException.h
Go to the documentation of this file.
1 
2 /*****************************************************************************
3 *
4 * Copyright (c) 2003-2013 by University of Queensland
5 * http://www.uq.edu.au
6 *
7 * Primary Business: Queensland, Australia
8 * Licensed under the Open Software License version 3.0
9 * http://www.opensource.org/licenses/osl-3.0.php
10 *
11 * Development until 2012 by Earth Systems Science Computational Center (ESSCC)
12 * Development since 2012 by School of Earth Sciences
13 *
14 *****************************************************************************/
15 
16 #ifndef __RIPLEY_EXCEPTION_H__
17 #define __RIPLEY_EXCEPTION_H__
18 
19 #include <ripley/system_dep.h>
20 #include <esysUtils/EsysException.h>
21 
22 namespace ripley {
23 
29 {
30 protected:
31  typedef EsysException Parent;
32 
33 public:
38  RipleyException() : Parent() { updateMessage(); }
39 
44  RipleyException(const char *cstr) : Parent(cstr) { updateMessage(); }
45 
50  RipleyException(const std::string &str) : Parent(str) { updateMessage(); }
51 
56  RipleyException(const RipleyException &other) : Parent(other)
57  {
58  updateMessage();
59  }
60 
63 
68  inline RipleyException& operator=(const RipleyException &other ) THROW(NO_ARG)
69  {
70  Parent::operator=(other);
71  updateMessage();
72  return *this;
73  }
74 
79  virtual const std::string& exceptionName() const;
80 
81 private:
82  //
83  // the exception name is immutable and class-wide.
84  static const std::string exceptionNameValue;
85 };
86 
87 } // end of namespace ripley
88 
89 #endif // __RIPLEY_EXCEPTION_H__
90