Arcane  4.1.12.0
User documentation
Loading...
Searching...
No Matches
InvalidArgumentException.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2026 CEA (www.cea.fr) IFPEN (www.ifpenergiesnouvelles.com)
4// See the top-level COPYRIGHT file for details.
5// SPDX-License-Identifier: Apache-2.0
6//-----------------------------------------------------------------------------
7/*---------------------------------------------------------------------------*/
8/* InvalidArgumentException.cc (C) 2000-2018 */
9/* */
10/* Exception when an argument is invalid. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/utils/ArcanePrecomp.h"
15
16#include "arcane/utils/Iostream.h"
17#include "arcane/utils/InvalidArgumentException.h"
18#include "arcane/utils/OStringStream.h"
19
20/*---------------------------------------------------------------------------*/
21/*---------------------------------------------------------------------------*/
22
23namespace Arcane
24{
25
26/*---------------------------------------------------------------------------*/
27/*---------------------------------------------------------------------------*/
28
29InvalidArgumentException::
30InvalidArgumentException(const TraceInfo& where, const String& arg_name,
31 int arg_value)
32: Exception("InvalidArgument", where)
33, m_arg_name(arg_name)
34{
35 _init(arg_value);
36}
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
41InvalidArgumentException::
42InvalidArgumentException(const TraceInfo& where, const String& arg_name,
43 double arg_value)
44: Exception("InvalidArgument", where)
45, m_arg_name(arg_name)
46{
47 _init(arg_value);
48}
49
50/*---------------------------------------------------------------------------*/
51/*---------------------------------------------------------------------------*/
52
53InvalidArgumentException::
54InvalidArgumentException(const TraceInfo& where, const String& arg_name,
55 const String& arg_value)
56: Exception("InvalidArgument", where)
57, m_arg_name(arg_name)
58{
59 _init(arg_value);
60}
61
62/*---------------------------------------------------------------------------*/
63/*---------------------------------------------------------------------------*/
64
65InvalidArgumentException::
66InvalidArgumentException(const TraceInfo& where, const String& arg_name,
67 const void* arg_value)
68: Exception("InvalidArgument", where)
69, m_arg_name(arg_name)
70{
71 _init(arg_value);
72}
73
74/*---------------------------------------------------------------------------*/
75/*---------------------------------------------------------------------------*/
76
77InvalidArgumentException::
78InvalidArgumentException(const TraceInfo& where, const String& arg_name,
79 const String& message,
80 int arg_value)
81: Exception("InvalidArgument", where)
82, m_arg_name(arg_name)
83, m_message(message)
84{
85 _init(arg_value);
86}
87
88/*---------------------------------------------------------------------------*/
89/*---------------------------------------------------------------------------*/
90
91InvalidArgumentException::
92InvalidArgumentException(const TraceInfo& where, const String& arg_name,
93 const String& message,
94 double arg_value)
95: Exception("InvalidArgument", where)
96, m_arg_name(arg_name)
97, m_message(message)
98{
99 _init(arg_value);
100}
101
102/*---------------------------------------------------------------------------*/
103/*---------------------------------------------------------------------------*/
104
105InvalidArgumentException::
106InvalidArgumentException(const TraceInfo& where, const String& arg_name,
107 const String& message,
108 const String& arg_value)
109: Exception("InvalidArgument", where)
110, m_arg_name(arg_name)
111, m_message(message)
112{
113 _init(arg_value);
114}
115
116/*---------------------------------------------------------------------------*/
117/*---------------------------------------------------------------------------*/
118
119InvalidArgumentException::
120InvalidArgumentException(const TraceInfo& where, const String& arg_name,
121 const String& message,
122 const void* arg_value)
123: Exception("InvalidArgument", where)
124, m_arg_name(arg_name)
125, m_message(message)
126{
127 _init(arg_value);
128}
129
130/*---------------------------------------------------------------------------*/
131/*---------------------------------------------------------------------------*/
132
133InvalidArgumentException::
134InvalidArgumentException(const InvalidArgumentException& ex)
135: Exception(ex)
136, m_arg_name(ex.m_arg_name)
137, m_arg_value(ex.m_arg_value)
138, m_message(ex.m_message)
139{
140}
141
142/*---------------------------------------------------------------------------*/
143/*---------------------------------------------------------------------------*/
144
145template <typename U> void InvalidArgumentException::
146_init(const U& arg_value)
147{
148 OStringStream ostr;
149 ostr() << arg_value;
150 m_arg_value = ostr.str();
151}
152
153/*---------------------------------------------------------------------------*/
154/*---------------------------------------------------------------------------*/
155
156void InvalidArgumentException::
157explain(std::ostream& m) const
158{
159 m << "Argument invalide: nom='" << m_arg_name
160 << "' valeur='" << m_arg_value << "'.";
161 if (!m_message.null())
162 m << m_message << ".";
163 m << "\n";
164}
165
166/*---------------------------------------------------------------------------*/
167/*---------------------------------------------------------------------------*/
168
169} // namespace Arcane
170
171/*---------------------------------------------------------------------------*/
172/*---------------------------------------------------------------------------*/
-- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature --