RMS SDK for C++  0.2.1
A client library for using Microsoft RMS from Linux.
Exceptions.h
1 /*
2  * ======================================================================
3  * Copyright (c) Microsoft Open Technologies, Inc. All rights reserved.
4  * Licensed under the MIT License.
5  * See LICENSE.md in the project root for license information.
6  * ======================================================================
7 */
8 
9 #ifndef EXCEPTIONS
10 #define EXCEPTIONS
11 #include "types.h"
12 #include <exception>
13 
14 #ifndef _NOEXCEPT
15 #if __GNUC__ >= 4
16 #define _NOEXCEPT _GLIBCXX_USE_NOEXCEPT
17 #endif
18 #endif
19 
20 namespace rmsauth {
21 
22 class Exception : public std::exception
23 {
24 public:
25  Exception(const String& error)
26  : std::exception()
27  , error_(error)
28  {}
29 
30  Exception(const String& error, const String& message)
31  : std::exception()
32  , error_(error)
33  , message_(message)
34  {}
35 
36  virtual const char* what() const _NOEXCEPT {return error_.c_str();}
37  virtual const String& error() const {return error_;}
38  virtual const String& message() const {return message_;}
39 
40 private:
41  String error_;
42  String message_;
43 };
44 
46 {
47 public:
48 // using Exception::Exception;
49  RmsauthException(const String& error, const String& message) : Exception(error, message){}
50  RmsauthException(const String& error) : RmsauthException(error, ""){}
51 };
52 
54 {
55 public:
56 // using RmsauthException::RmsauthException;
57  RmsauthServiceException(const String& error, const String& message) : RmsauthException(error, message) {}
58  RmsauthServiceException(const String& error) : RmsauthServiceException(error, ""){}
59 
60 };
61 
63 {
64 public:
65 // using RmsauthException::RmsauthException;
66  RmsauthUserMismatchException(const String& error, const String& message) : RmsauthException(error, message){}
67  RmsauthUserMismatchException(const String& error) : RmsauthUserMismatchException(error, ""){}
68 
69 };
70 
72 {
73 public:
74 // using RmsauthException::RmsauthException;
75  RmsauthParsingException(const String& error, const String& message) : RmsauthException(error, message){}
76  RmsauthParsingException(const String& error) : RmsauthParsingException(error, ""){}
77 
78 };
79 
81 {
82 public:
83 // using RmsauthParsingException::RmsauthParsingException;
84  RmsauthJsonParsingException(const String& error, const String& message) : RmsauthParsingException(error, message){}
85  RmsauthJsonParsingException(const String& error) : RmsauthJsonParsingException(error, ""){}
86 };
87 
89 {
90 public:
91 // using Exception::Exception;
92  IllegalArgumentException(const String& error, const String& message) : Exception(error, message){}
93  IllegalArgumentException(const String& error) : IllegalArgumentException(error, ""){}
94 };
95 
96 } // namespace rmsauth {
97 
98 #endif // EXCEPTIONS
99 
Definition: Exceptions.h:62
Definition: Exceptions.h:88
Definition: Exceptions.h:45
Definition: Exceptions.h:22
Definition: Exceptions.h:71
Definition: Exceptions.h:53
Definition: AcquireTokenForClientHandler.h:14
Definition: Exceptions.h:80