7#ifndef ARP_USE_ARP_SYSTEM_COMMONS_EXCEPTIONS
8#include "Arp/Base/Commons/Exceptions/ArgumentOutOfRangeException.hpp"
15#include "Arp/System/Commons/Exceptions/ArgumentException.hpp"
17namespace Arp {
namespace System {
namespace Commons
21class ArgumentOutOfRangeException :
public ArgumentException
24 template<
typename... Args>
25 ArgumentOutOfRangeException(
const char* message,
const Args& ... args);
26 ArgumentOutOfRangeException(
const String& message);
27 ArgumentOutOfRangeException(String&& message);
28 ArgumentOutOfRangeException(
const String& message,
const Exception& innerException);
29 ArgumentOutOfRangeException(String&& message, Exception&& innerException);
30 ArgumentOutOfRangeException(
const ArgumentOutOfRangeException& arg) =
default;
31 ArgumentOutOfRangeException(ArgumentOutOfRangeException&& arg) =
default;
32 virtual ~ArgumentOutOfRangeException(
void) =
default;
36 static ArgumentOutOfRangeException
Create(
const char* paramName,
const T& paramValue);
38 static ArgumentOutOfRangeException
Create(
const char* paramName,
const T& paramValue,
const Exception& innerException);
44 ArgumentOutOfRangeException& operator=(
const ArgumentOutOfRangeException& arg) =
delete;
47 static const char*
const defaultMessage;
54template<
typename... Args>
56 : ArgumentException(
ExceptionTypeId::ArgumentOutOfRange, String::Format(message, args...))
61inline ArgumentOutOfRangeException::ArgumentOutOfRangeException(
const String& message)
62 : ArgumentException(ExceptionTypeId::ArgumentOutOfRange, message)
67inline ArgumentOutOfRangeException::ArgumentOutOfRangeException(String&& message)
68 : ArgumentException(ExceptionTypeId::ArgumentOutOfRange,
std::move(message))
73inline ArgumentOutOfRangeException::ArgumentOutOfRangeException(
const String& message,
const Exception& innerException)
74 : ArgumentException(ExceptionTypeId::ArgumentOutOfRange, message, innerException)
79inline ArgumentOutOfRangeException::ArgumentOutOfRangeException(String&& message, Exception&& innerException)
80 : ArgumentException(ExceptionTypeId::ArgumentOutOfRange,
std::move(message),
std::move(innerException))
86inline ArgumentOutOfRangeException ArgumentOutOfRangeException::Create(
const char* paramName,
const T& paramValue)
88 return ArgumentOutOfRangeException(defaultMessage, paramName, paramValue);
93inline ArgumentOutOfRangeException ArgumentOutOfRangeException::Create(
const char* paramName,
const T& paramValue,
const Exception& innerException)
95 return ArgumentOutOfRangeException(String::Format(defaultMessage, paramName, paramValue), innerException);
102template<>
struct fmt::formatter<
Arp::System::Commons::ArgumentOutOfRangeException> :
public fmt::ostream_formatter {};
This exception is thrown when an invalid null argument occurs.
Definition: ArgumentOutOfRangeException.hpp:16
ArgumentOutOfRangeException(const ArgumentOutOfRangeException &arg)
Default copy constructor.
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