7#ifndef ARP_USE_ARP_SYSTEM_COMMONS_EXCEPTIONS
8#include "Arp/Base/Commons/Exceptions/NotImplementedException.hpp"
15#include "Arp/System/Commons/Exceptions/CommonException.hpp"
17namespace Arp {
namespace System {
namespace Commons
21class NotImplementedException :
public CommonException
24 template<
typename... Args>
25 NotImplementedException(
const char* message,
const Args& ... args);
26 NotImplementedException(
const String& message);
27 NotImplementedException(String&& message);
28 NotImplementedException(
const String& message,
const Exception& innerException);
29 NotImplementedException(String&& message, Exception&& innerException);
30 NotImplementedException(
const NotImplementedException& arg) =
default;
31 NotImplementedException(NotImplementedException&& arg) =
default;
32 virtual ~NotImplementedException(
void) =
default;
35 static NotImplementedException
Create(
const char* functionName);
36 static NotImplementedException
Create(
const char* functionName,
const Exception& innerException);
42 NotImplementedException& operator=(
const NotImplementedException& arg) =
delete;
45 static const char*
const defaultMessage;
53template<
typename... Args>
55 : CommonException(
ExceptionTypeId::NotImplemented, String::Format(message, args...))
60inline NotImplementedException::NotImplementedException(
const String& message)
61 : CommonException(ExceptionTypeId::NotImplemented, message)
66inline NotImplementedException::NotImplementedException(String&& message)
67 : CommonException(ExceptionTypeId::NotImplemented,
std::move(message))
72inline NotImplementedException::NotImplementedException(
const String& message,
const Exception& innerException)
73 : CommonException(ExceptionTypeId::NotImplemented, message, innerException)
78inline NotImplementedException::NotImplementedException(String&& message, Exception&& innerException)
79 : CommonException(ExceptionTypeId::NotImplemented,
std::move(message),
std::move(innerException))
84inline NotImplementedException NotImplementedException::Create(
const char* functionName)
86 return NotImplementedException(defaultMessage, functionName);
90inline NotImplementedException NotImplementedException::Create(
const char* functionName,
const Exception& innerException)
92 return NotImplementedException(String::Format(defaultMessage, functionName), innerException);
99template<>
struct fmt::formatter<
Arp::System::Commons::NotImplementedException> :
public fmt::ostream_formatter {};
This exception is thrown when an operation was not implemented yet.
Definition: NotImplementedException.hpp:17
NotImplementedException(const char *message, const Args &... args)
Creates an NotImplementedException with message.
Definition: NotImplementedException.hpp:68
std::unique_ptr< Exception > Ptr
The smart pointer type of this class.
Definition: Exception.hpp:27
@ Create
Creates a new file. If the file already exists, it is overwritten.
ExceptionTypeId
Specifies the type id of any exception derived by <see cref="CommonException".
Definition: ExceptionTypeId.hpp:15
Root namespace for the PLCnext API
Namespace of the C++ standard library