Microsoft Information Protection (MIP) SDK for C++: Reference 1.16
Doxygen-generated documentation for MIP SDK written in C++
Loading...
Searching...
No Matches
Error Class Referenceabstract

Base class for all errors that will be reported (thrown or returned) from MIP SDK. More...

#include <src/api/mip/error.h>

Inheritance diagram for Error:
Collaboration diagram for Error:

Public Member Functions

void AddDebugInfo (const std::string &key, const std::string &value, bool sensitive=false)
 Add debug info entry.
 
virtual std::shared_ptr< ErrorClone () const =0
 Clone the error.
 
const std::map< std::string, std::string > & GetDebugInfo () const
 Get debug info.
 
const std::string & GetErrorName () const
 Get the error name.
 
virtual ErrorType GetErrorType () const
 Get the error type.
 
const std::string & GetMessage (bool maskPII=false) const
 Get the error message.
 
void SetMessage (const std::string &msg)
 Set the error message.
 
char const * what () const noexcept override
 Get the error message.
 

Public Attributes

std::map< std::string, std::string > mDebugInfo
 
std::string mMessage
 
std::string mName
 
ErrorType mType
 

Private Member Functions

std::string CreateFormattedMessage (const std::string &message) const
 

Private Attributes

std::string mFormattedMessage
 
std::string mMaskedMessage
 

Detailed Description

Base class for all errors that will be reported (thrown or returned) from MIP SDK.

Definition at line 114 of file error.h.

Member Function Documentation

◆ AddDebugInfo()

void Error::AddDebugInfo ( const std::string & key,
const std::string & value,
bool sensitive = false )
inline

Add debug info entry.

Parameters
keyDebug info key
valueDebug info value

Definition at line 179 of file error.h.

179 {
180 if (!key.empty() && !value.empty()) {
181 mDebugInfo[key] = value;
182 mFormattedMessage = mFormattedMessage + ", " + key + "=" + value;
183 mMaskedMessage = mMaskedMessage + ", " + key + "=" + (sensitive ? "***" : value);
184 }
185 }
std::map< std::string, std::string > mDebugInfo
Definition error.h:225
std::string mMaskedMessage
Definition error.h:241
std::string mFormattedMessage
Definition error.h:240

References mDebugInfo, mFormattedMessage, and mMaskedMessage.

Referenced by NoPermissionsExtendedError::AddExtendedErrorInfoToDebugInfo(), DelegateResponseError::DelegateResponseError(), DelegateResponseError::DelegateResponseError(), and DelegateResponseError::DelegateResponseError().

◆ Clone()

virtual std::shared_ptr< Error > Error::Clone ( ) const
pure virtual

Clone the error.

Returns
a clone of the error.

Implemented in JustificationRequiredError.

◆ CreateFormattedMessage()

std::string Error::CreateFormattedMessage ( const std::string & message) const
inlineprivate

Definition at line 230 of file error.h.

230 {
231 auto formattedMessage = message;
232
233 // Remove stray newlines
234 auto isNewlineFn = [](char c) { return c == '\n' || c == '\r'; };
235 formattedMessage.erase(std::remove_if(formattedMessage.begin(), formattedMessage.end(), isNewlineFn), formattedMessage.end());
236
237 return formattedMessage;
238 }

◆ GetDebugInfo()

const std::map< std::string, std::string > & Error::GetDebugInfo ( ) const
inline

Get debug info.

Returns
Debug info (keys/values)

Definition at line 192 of file error.h.

192{ return mDebugInfo; }

References mDebugInfo.

◆ GetErrorName()

const std::string & Error::GetErrorName ( ) const
inline

Get the error name.

Returns
the error name.

Definition at line 144 of file error.h.

144{ return mName; }
std::string mName
Definition error.h:226

References mName.

◆ GetErrorType()

virtual ErrorType Error::GetErrorType ( ) const
inlinevirtual

Get the error type.

Returns
the error type.

Definition at line 137 of file error.h.

137{ return mType; }
ErrorType mType
Definition error.h:227

References mType.

◆ GetMessage()

const std::string & Error::GetMessage ( bool maskPII = false) const
inline

Get the error message.

Returns
the error message.

Definition at line 151 of file error.h.

151 {
152 return maskPII ? mMaskedMessage : mFormattedMessage;
153 }

References mFormattedMessage, and mMaskedMessage.

◆ SetMessage()

void Error::SetMessage ( const std::string & msg)
inline

Set the error message.

Parameters
msgthe error message.

Definition at line 160 of file error.h.

160 {
161 std::string* targetStrings[] = { &mFormattedMessage, &mMaskedMessage };
162 for (auto* targetString : targetStrings) {
163 size_t pos = targetString->find(mMessage);
164 if (pos != std::string::npos) {
165 targetString->replace(pos, mMessage.length(), msg);
166 } else {
167 targetString->replace(0, 0, msg);
168 }
169 }
170 mMessage = msg;
171 }
std::string mMessage
Definition error.h:224

References mFormattedMessage, mMaskedMessage, and mMessage.

◆ what()

char const * Error::what ( ) const
inlineoverridenoexcept

Get the error message.

Returns
the error message

Definition at line 121 of file error.h.

121 {
122 return mFormattedMessage.c_str();
123 }

References mFormattedMessage.

Member Data Documentation

◆ mDebugInfo

std::map<std::string, std::string> Error::mDebugInfo

Definition at line 225 of file error.h.

Referenced by AddDebugInfo(), and GetDebugInfo().

◆ mFormattedMessage

std::string Error::mFormattedMessage
private

Definition at line 240 of file error.h.

Referenced by AddDebugInfo(), GetMessage(), SetMessage(), and what().

◆ mMaskedMessage

std::string Error::mMaskedMessage
private

Definition at line 241 of file error.h.

Referenced by AddDebugInfo(), GetMessage(), and SetMessage().

◆ mMessage

std::string Error::mMessage

Definition at line 224 of file error.h.

Referenced by DelegateResponseError::DelegateResponseError(), and SetMessage().

◆ mName

std::string Error::mName

Definition at line 226 of file error.h.

Referenced by GetErrorName().

◆ mType

ErrorType Error::mType

Definition at line 227 of file error.h.

Referenced by GetErrorType().


The documentation for this class was generated from the following file: