ArcGIS Procedural Runtime  3.2.10650
Exception.h
1 /*
2  COPYRIGHT (c) 2012-2024 Esri R&D Center Zurich
3  TRADE SECRETS: ESRI PROPRIETARY AND CONFIDENTIAL
4  Unpublished material - all rights reserved under the
5  Copyright Laws of the United States and applicable international
6  laws, treaties, and conventions.
7 
8  For additional information, contact:
9  Environmental Systems Research Institute, Inc.
10  Attn: Contracts and Legal Services Department
11  380 New York Street
12  Redlands, California, 92373
13  USA
14 
15  email: contracts@esri.com
16 */
17 
18 #ifndef PRTX_EXCEPTION_H_
19 #define PRTX_EXCEPTION_H_
20 
21 #include "prtx/prtx.h"
22 #include "prt/Status.h"
23 #include "prt/API.h"
24 
25 #include <exception>
26 #include <string>
27 
28 #ifdef _MSC_VER
29 # pragma warning(push)
30 # pragma warning (disable : 4251) // 'identifier' : class 'type' needs to have dll-interface to be used by clients of class 'type2'
31 # pragma warning (disable : 4275) // non dll-interface class used as base for dll-interface class
32 #endif
33 
34 namespace prtx {
35 
36 
41 class PRTX_EXPORTS_API StatusException : public std::exception {
42 public:
43  explicit StatusException(prt::Status stat) : mStatus(stat) {}
44  explicit StatusException(prt::Status stat, const std::string& details);
45 
46  virtual ~StatusException() throw() {}
47 
48  virtual const char* what() const throw();
49 
50  prt::Status getStatus() const { return mStatus; }
51 
52 private:
53  prt::Status mStatus;
54  std::string mWhat;
55 };
56 
57 
58 } // namespace prtx
59 
60 #ifdef _MSC_VER
61 # pragma warning(pop)
62 #endif
63 
64 
65 #endif /* PRTX_EXCEPTION_H_ */
Definition: Exception.h:41
The Procedural Runtime eXtension namespace. The prtx namespace contains the tools to extend the Proce...
Definition: AnnotationBuilder.h:35
Status
Definition: Status.h:31