IBR-DTNSuite  0.10
Exceptions.h
Go to the documentation of this file.
1 /*
2  * Exceptions.h
3  *
4  * Copyright (C) 2011 IBR, TU Braunschweig
5  *
6  * Written-by: Johannes Morgenroth <morgenroth@ibr.cs.tu-bs.de>
7  *
8  * Licensed under the Apache License, Version 2.0 (the "License");
9  * you may not use this file except in compliance with the License.
10  * You may obtain a copy of the License at
11  *
12  * http://www.apache.org/licenses/LICENSE-2.0
13  *
14  * Unless required by applicable law or agreed to in writing, software
15  * distributed under the License is distributed on an "AS IS" BASIS,
16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17  * See the License for the specific language governing permissions and
18  * limitations under the License.
19  *
20  */
21 
22 #ifndef IBRCOMMON_EXCEPTIONS_H_
23 #define IBRCOMMON_EXCEPTIONS_H_
24 
25 #include <stdexcept>
26 #include <string>
27 
28 
29 using namespace std;
30 
37 namespace ibrcommon
38 {
42  class Exception : public std::exception
43  {
44  public:
45  Exception() throw()
46  {};
47 
48  Exception(const exception&) throw()
49  {};
50 
51  virtual ~Exception() throw()
52  {};
53 
58  virtual const char* what() const throw()
59  {
60  return _what.c_str();
61  }
62 
67  Exception(string what) throw()
68  {
69  _what = what;
70  };
71 
72  protected:
73  string _what;
74  };
75 
80  {
81  public:
82  NotImplementedException(string what = "This method isn't implemented.") throw() : Exception(what)
83  {
84  };
85  };
86 
90  class IOException : public Exception
91  {
92  public:
93  IOException(string what = "Input/Output error.") throw() : Exception(what)
94  {
95  };
96  };
97 }
98 
99 #endif /*EXCEPTIONS_H_*/