Field3D
Exception.h
Go to the documentation of this file.
1//----------------------------------------------------------------------------//
2
3/*
4 * Copyright (c) 2009 Sony Pictures Imageworks Inc
5 *
6 * All rights reserved.
7 *
8 * Redistribution and use in source and binary forms, with or without
9 * modification, are permitted provided that the following conditions
10 * are met:
11 *
12 * Redistributions of source code must retain the above copyright
13 * notice, this list of conditions and the following disclaimer.
14 * Redistributions in binary form must reproduce the above copyright
15 * notice, this list of conditions and the following disclaimer in the
16 * documentation and/or other materials provided with the
17 * distribution. Neither the name of Sony Pictures Imageworks nor the
18 * names of its contributors may be used to endorse or promote
19 * products derived from this software without specific prior written
20 * permission.
21 *
22 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
23 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
24 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
25 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
26 * COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
27 * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
28 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
30 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
31 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
32 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
33 * OF THE POSSIBILITY OF SUCH DAMAGE.
34 */
35
36//----------------------------------------------------------------------------//
37
42//----------------------------------------------------------------------------//
43
44#ifndef _INCLUDED_Field3D_Exception_H_
45#define _INCLUDED_Field3D_Exception_H_
46
47#include <stdexcept>
48
49//----------------------------------------------------------------------------//
50
51#include "ns.h"
52
54
57namespace Exc {
58
59//----------------------------------------------------------------------------//
60// Exception
61//----------------------------------------------------------------------------//
62
71//----------------------------------------------------------------------------//
72
73class Exception : public std::exception
74{
75 public:
76
77 // Ctor, dtor ----------------------------------------------------------------
78
80 Exception(const std::string &what) throw()
81 : std::exception(), m_what(what)
82 { }
83
85 virtual ~Exception() throw()
86 { }
87
88 // std::exception ------------------------------------------------------------
89
90 virtual const char* what() const throw()
91 { return m_what.c_str(); }
92
93 protected:
94
95 // Data members --------------------------------------------------------------
96
98 std::string m_what;
99
100};
101
102//----------------------------------------------------------------------------//
103// Exceptions used in Field3D
104//----------------------------------------------------------------------------//
105
107#define DECLARE_FIELD3D_GENERIC_EXCEPTION(name, base_class) \
108class name : public base_class \
109{ \
110 public: \
111 explicit name(const std::string &what = "") throw() \
112 : base_class(what) \
113 { } \
114 ~name() throw() \
115 { } \
116}; \
117
118//----------------------------------------------------------------------------//
119
147
154
156
157//----------------------------------------------------------------------------//
158
159} // namespace Exc
160
162
163//----------------------------------------------------------------------------//
164
165#endif // Include guard
#define DECLARE_FIELD3D_GENERIC_EXCEPTION(name, base_class)
Used to declare a generic but named exception.
Definition Exception.h:107
#define FIELD3D_MTX_T
Definition StdMathLib.h:99
std::string m_what
What string for the expection.
Definition Exception.h:98
Exception(const std::string &what)
Construct from string.
Definition Exception.h:80
virtual const char * what() const
Definition Exception.h:90
virtual ~Exception()
Destructor.
Definition Exception.h:85
Namespace for Exception objects.
Definition Exception.h:57
#define FIELD3D_NAMESPACE_HEADER_CLOSE
Definition ns.h:58