Magick++  7.0.10
Exception.h
Go to the documentation of this file.
1 // This may look like C code, but it is really -*- C++ -*-
2 //
3 // Copyright Bob Friesenhahn, 1999, 2000, 2001, 2002, 2003
4 // Copyright Dirk Lemstra 2014-2015
5 //
6 // Definition of Magick::Exception and derived classes
7 // Magick::Warning* and Magick::Error*. Derived from C++ STD
8 // 'exception' class for convenience.
9 //
10 // These classes form part of the Magick++ user interface.
11 //
12 
13 #if !defined(Magick_Exception_header)
14 #define Magick_Exception_header
15 
16 #include "Magick++/Include.h"
17 #include <string>
18 #include <exception>
19 
20 namespace Magick
21 {
22  class MagickPPExport Exception: public std::exception
23  {
24  public:
25 
26  // Construct with message string
27  Exception(const std::string& what_);
28 
29  // Construct with message string and nested exception
30  Exception(const std::string& what_, Exception* nested_);
31 
32  // Copy constructor
33  Exception(const Exception& original_);
34 
35  // Destructor
36  virtual ~Exception() throw();
37 
38  // Assignment operator
39  Exception& operator=(const Exception& original_);
40 
41  // Get string identifying exception
42  virtual const char* what() const throw();
43 
44  // Get nested exception
45  const Exception* nested() const throw();
46 
48  //
49  // No user-serviceable parts beyond this point
50  //
52 
53  void nested(Exception* nested_) throw();
54 
55  private:
56  std::string _what;
57  Exception* _nested;
58  };
59 
60  //
61  // Error exceptions
62  //
63 
65  {
66  public:
67  explicit Error(const std::string& what_);
68  explicit Error(const std::string& what_,Exception *nested_);
69  ~Error() throw();
70  };
71 
73  {
74  public:
75  explicit ErrorBlob(const std::string& what_);
76  explicit ErrorBlob(const std::string& what_,Exception *nested_);
77  ~ErrorBlob() throw();
78  };
79 
81  {
82  public:
83  explicit ErrorCache(const std::string& what_);
84  explicit ErrorCache(const std::string& what_,Exception *nested_);
85  ~ErrorCache() throw();
86  };
87 
89  {
90  public:
91  explicit ErrorCoder(const std::string& what_);
92  explicit ErrorCoder(const std::string& what_,Exception *nested_);
93  ~ErrorCoder() throw();
94  };
95 
97  {
98  public:
99  explicit ErrorConfigure(const std::string& what_);
100  explicit ErrorConfigure(const std::string& what_,Exception *nested_);
101  ~ErrorConfigure() throw();
102  };
103 
105  {
106  public:
107  explicit ErrorCorruptImage(const std::string& what_);
108  explicit ErrorCorruptImage(const std::string& what_,Exception *nested_);
109  ~ErrorCorruptImage() throw();
110  };
111 
113  {
114  public:
115  explicit ErrorDelegate(const std::string& what_);
116  explicit ErrorDelegate(const std::string& what_,Exception *nested_);
117  ~ErrorDelegate() throw();
118  };
119 
121  {
122  public:
123  explicit ErrorDraw(const std::string& what_);
124  explicit ErrorDraw(const std::string& what_,Exception *nested_);
125  ~ErrorDraw() throw();
126  };
127 
129  {
130  public:
131  explicit ErrorFileOpen(const std::string& what_);
132  explicit ErrorFileOpen(const std::string& what_,Exception *nested_);
133  ~ErrorFileOpen() throw();
134  };
135 
137  {
138  public:
139  explicit ErrorImage(const std::string& what_);
140  explicit ErrorImage(const std::string& what_,Exception *nested_);
141  ~ErrorImage() throw();
142  };
143 
145  {
146  public:
147  explicit ErrorMissingDelegate(const std::string& what_);
148  explicit ErrorMissingDelegate(const std::string& what_,Exception *nested_);
149  ~ErrorMissingDelegate() throw();
150  };
151 
153  {
154  public:
155  explicit ErrorModule(const std::string& what_);
156  explicit ErrorModule(const std::string& what_,Exception *nested_);
157  ~ErrorModule() throw();
158  };
159 
161  {
162  public:
163  explicit ErrorMonitor(const std::string& what_);
164  explicit ErrorMonitor(const std::string& what_,Exception *nested_);
165  ~ErrorMonitor() throw();
166  };
167 
169  {
170  public:
171  explicit ErrorOption(const std::string& what_);
172  explicit ErrorOption(const std::string& what_,Exception *nested_);
173  ~ErrorOption() throw();
174  };
175 
177  {
178  public:
179  explicit ErrorPolicy(const std::string& what_);
180  explicit ErrorPolicy(const std::string& what_,Exception *nested_);
181  ~ErrorPolicy() throw();
182  };
183 
185  {
186  public:
187  explicit ErrorRegistry(const std::string& what_);
188  explicit ErrorRegistry(const std::string& what_,Exception *nested_);
189  ~ErrorRegistry() throw();
190  };
191 
193  {
194  public:
195  explicit ErrorResourceLimit(const std::string& what_);
196  explicit ErrorResourceLimit(const std::string& what_,Exception *nested_);
197  ~ErrorResourceLimit() throw();
198  };
199 
201  {
202  public:
203  explicit ErrorStream(const std::string& what_);
204  explicit ErrorStream(const std::string& what_,Exception *nested_);
205  ~ErrorStream() throw();
206  };
207 
209  {
210  public:
211  explicit ErrorType(const std::string& what_);
212  explicit ErrorType(const std::string& what_,Exception *nested_);
213  ~ErrorType() throw();
214  };
215 
217  {
218  public:
219  explicit ErrorUndefined(const std::string& what_);
220  explicit ErrorUndefined(const std::string& what_,Exception *nested_);
221  ~ErrorUndefined() throw();
222  };
223 
225  {
226  public:
227  explicit ErrorXServer(const std::string& what_);
228  explicit ErrorXServer(const std::string& what_,Exception *nested_);
229  ~ErrorXServer() throw();
230  };
231 
232  //
233  // Warnings
234  //
235 
237  {
238  public:
239  explicit Warning(const std::string& what_);
240  explicit Warning(const std::string& what_,Exception *nested_);
241  ~Warning() throw();
242  };
243 
245  {
246  public:
247  explicit WarningBlob(const std::string& what_);
248  explicit WarningBlob(const std::string& what_,Exception *nested_);
249  ~WarningBlob() throw();
250  };
251 
253  {
254  public:
255  explicit WarningCache(const std::string& what_);
256  explicit WarningCache(const std::string& what_,Exception *nested_);
257  ~WarningCache() throw();
258  };
259 
261  {
262  public:
263  explicit WarningCoder(const std::string& what_);
264  explicit WarningCoder(const std::string& what_,Exception *nested_);
265  ~WarningCoder() throw();
266  };
267 
269  {
270  public:
271  explicit WarningConfigure(const std::string& what_);
272  explicit WarningConfigure(const std::string& what_,Exception *nested_);
273  ~WarningConfigure() throw();
274  };
275 
277  {
278  public:
279  explicit WarningCorruptImage(const std::string& what_);
280  explicit WarningCorruptImage(const std::string& what_,Exception *nested_);
281  ~WarningCorruptImage() throw();
282  };
283 
285  {
286  public:
287  explicit WarningDelegate(const std::string& what_);
288  explicit WarningDelegate(const std::string& what_,Exception *nested_);
289  ~WarningDelegate() throw();
290  };
291 
293  {
294  public:
295  explicit WarningDraw(const std::string& what_);
296  explicit WarningDraw(const std::string& what_,Exception *nested_);
297  ~WarningDraw() throw();
298  };
299 
301  {
302  public:
303  explicit WarningFileOpen(const std::string& what_);
304  explicit WarningFileOpen(const std::string& what_,Exception *nested_);
305  ~WarningFileOpen() throw();
306  };
307 
309  {
310  public:
311  explicit WarningImage(const std::string& what_);
312  explicit WarningImage(const std::string& what_,Exception *nested_);
313  ~WarningImage() throw();
314  };
315 
317  {
318  public:
319  explicit WarningMissingDelegate(const std::string& what_);
320  explicit WarningMissingDelegate(const std::string& what_,
321  Exception *nested_);
322  ~WarningMissingDelegate() throw();
323  };
324 
326  {
327  public:
328  explicit WarningModule(const std::string& what_);
329  explicit WarningModule(const std::string& what_,Exception *nested_);
330  ~WarningModule() throw();
331  };
332 
334  {
335  public:
336  explicit WarningMonitor(const std::string& what_);
337  explicit WarningMonitor(const std::string& what_,Exception *nested_);
338  ~WarningMonitor() throw();
339  };
340 
342  {
343  public:
344  explicit WarningOption(const std::string& what_);
345  explicit WarningOption(const std::string& what_,Exception *nested_);
346  ~WarningOption() throw();
347  };
348 
350  {
351  public:
352  explicit WarningPolicy(const std::string& what_);
353  explicit WarningPolicy(const std::string& what_,Exception *nested_);
354  ~WarningPolicy() throw();
355  };
356 
358  {
359  public:
360  explicit WarningRegistry(const std::string& what_);
361  explicit WarningRegistry(const std::string& what_,Exception *nested_);
362  ~WarningRegistry() throw();
363  };
364 
366  {
367  public:
368  explicit WarningResourceLimit(const std::string& what_);
369  explicit WarningResourceLimit(const std::string& what_,Exception *nested_);
370  ~WarningResourceLimit() throw();
371  };
372 
374  {
375  public:
376  explicit WarningStream(const std::string& what_);
377  explicit WarningStream(const std::string& what_,Exception *nested_);
378  ~WarningStream() throw();
379  };
380 
382  {
383  public:
384  explicit WarningType(const std::string& what_);
385  explicit WarningType(const std::string& what_,Exception *nested_);
386  ~WarningType() throw();
387  };
388 
390  {
391  public:
392  explicit WarningUndefined(const std::string& what_);
393  explicit WarningUndefined(const std::string& what_,Exception *nested_);
394  ~WarningUndefined() throw();
395  };
396 
398  {
399  public:
400  explicit WarningXServer(const std::string& what_);
401  explicit WarningXServer(const std::string& what_,Exception *nested_);
402  ~WarningXServer() throw();
403  };
404 
405  //
406  // No user-serviceable components beyond this point.
407  //
408 
409  std::string formatExceptionMessage(
410  const MagickCore::ExceptionInfo *exception_);
411 
412  Exception* createException(const MagickCore::ExceptionInfo *exception_);
413 
414  // Throw exception based on raw data
416  const MagickCore::ExceptionType severity_,const char* reason_,
417  const char* description_=(char *) NULL);
418 
419  // Thow exception based on ImageMagick's ExceptionInfo
420  extern MagickPPExport void throwException(
421  MagickCore::ExceptionInfo *exception_,const bool quiet_=false);
422 
423 } // namespace Magick
424 
425 #endif // Magick_Exception_header
std::string formatExceptionMessage(const MagickCore::ExceptionInfo *exception_)
Definition: Exception.cpp:685
MagickPPExport void throwException(MagickCore::ExceptionInfo *exception_, const bool quiet_=false)
#define MagickPPExport
Definition: Include.h:281
MagickPPExport void throwExceptionExplicit(const MagickCore::ExceptionType severity_, const char *reason_, const char *description_=(char *) NULL)
Definition: Exception.cpp:806
Definition: Blob.h:15
Exception * createException(const MagickCore::ExceptionInfo *exception_)
Definition: Exception.cpp:700