Arcane  v3.15.3.0
Documentation utilisateur
Chargement...
Recherche...
Aucune correspondance
ArcaneException.cc
1// -*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
2//-----------------------------------------------------------------------------
3// Copyright 2000-2024 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/* ArcaneException.cc (C) 2000-2024 */
9/* */
10/* Exceptions lancées par l'architecture. */
11/*---------------------------------------------------------------------------*/
12/*---------------------------------------------------------------------------*/
13
14#include "arcane/ArcaneException.h"
15
16#include "arcane/utils/Iostream.h"
17
18#include "arcane/IVariable.h"
19#include "arcane/IModule.h"
20#include "arcane/IBase.h"
21#include "arcane/utils/TraceInfo.h"
22
23/*---------------------------------------------------------------------------*/
24/*---------------------------------------------------------------------------*/
25
26ARCANE_BEGIN_NAMESPACE
27
28/*---------------------------------------------------------------------------*/
29/*---------------------------------------------------------------------------*/
30
31BadIDException::
32BadIDException(const String& where,const String& invalid_name)
33: Exception("BadID",where)
34, m_invalid_name(invalid_name)
35{
36}
37
38/*---------------------------------------------------------------------------*/
39/*---------------------------------------------------------------------------*/
40
42explain(std::ostream& m) const
43{
44 m << "Name '" << m_invalid_name << "' is not a valid identifier.\n";
45 m << "Identifiers must start with an alphabetical character (a-zA-Z)\n";
46 m << "followed by alphabetical characters, figures,\n";
47 m << "underscores '_' or dots '.'\n";
48}
49
50/*---------------------------------------------------------------------------*/
51/*---------------------------------------------------------------------------*/
52
53/*---------------------------------------------------------------------------*/
54/*---------------------------------------------------------------------------*/
55
57BadItemIdException(const String& where,Integer bad_id)
58: Exception("BadItemId",where)
59, m_bad_id(bad_id)
60{
61}
62
63/*---------------------------------------------------------------------------*/
64/*---------------------------------------------------------------------------*/
65
67explain(std::ostream& m) const
68{
69 m << "Trying to use invalid item identifier: " << m_bad_id;
70}
71
72/*---------------------------------------------------------------------------*/
73/*---------------------------------------------------------------------------*/
74
75/*---------------------------------------------------------------------------*/
76/*---------------------------------------------------------------------------*/
77
78InternalErrorException::
79InternalErrorException(const String& where,const String& why)
80: Exception("InternalError",where)
81, m_why(why)
82{
83}
84
85/*---------------------------------------------------------------------------*/
86/*---------------------------------------------------------------------------*/
87
88InternalErrorException::
89InternalErrorException(const TraceInfo& where,const String& why)
90: Exception("InternalError",where)
91, m_why(why)
92{
93}
94
95/*---------------------------------------------------------------------------*/
96/*---------------------------------------------------------------------------*/
97
98InternalErrorException::
99InternalErrorException(const InternalErrorException& ex) ARCANE_NOEXCEPT
100: Exception(ex)
101, m_why(ex.m_why)
102{
103}
104
105/*---------------------------------------------------------------------------*/
106/*---------------------------------------------------------------------------*/
107
109explain(std::ostream& m) const
110{
111 m << "Internal error ocurred:\n";
112 m << "'" << m_why << "'\n";
113}
114
115/*---------------------------------------------------------------------------*/
116/*---------------------------------------------------------------------------*/
117
118/*---------------------------------------------------------------------------*/
119/*---------------------------------------------------------------------------*/
120
121BadVariableKindTypeException::
122BadVariableKindTypeException(const TraceInfo& where,IVariable* prv,
123 eItemKind kind,eDataType data_type,int dimension)
124: Exception("BadVariableKindType",where)
125, m_valid_var(prv)
126, m_item_kind(kind)
127, m_data_type(data_type)
128, m_dimension(dimension)
129{
130}
131
132/*---------------------------------------------------------------------------*/
133/*---------------------------------------------------------------------------*/
134
136explain(std::ostream& m) const
137{
138 m << "Wrong variable type:\n"
139 << "Variable '" << m_valid_var->name() << "'\n";
140 m << "declared as '" << m_item_kind << '.' << m_data_type << "." << m_dimension
141 << "' has already been declared\n"
142 << "as '" << m_valid_var->itemKind() << '.' << m_valid_var->dataType()
143 << "." << m_valid_var->dimension()
144 << "'";
145}
146
147/*---------------------------------------------------------------------------*/
148/*---------------------------------------------------------------------------*/
149
150BadPartialVariableItemGroupNameException::
151BadPartialVariableItemGroupNameException(const TraceInfo& where,IVariable* prv,
152 const String& item_group_name)
153: Exception("BadVariableKindType",where)
154, m_valid_var(prv)
155, m_item_group_name(item_group_name)
156{
157}
158
159/*---------------------------------------------------------------------------*/
160/*---------------------------------------------------------------------------*/
161
163explain(std::ostream& m) const
164{
165 m << "Wrong partial variable type:\n"
166 << "Partial Variable '" << m_valid_var->name() << "'\n";
167 m << "declared on item group '" << m_item_group_name
168 << "' has already been declared\n"
169 << "on item group '" << m_valid_var->itemGroupName()
170 << "'";
171}
172
173/*---------------------------------------------------------------------------*/
174/*---------------------------------------------------------------------------*/
175
176UnknownItemTypeException::
177UnknownItemTypeException(const String& where,Integer nb_node,Integer item_id)
178: Exception("UnknownItemType",where)
179, m_nb_node(nb_node)
180, m_item_id(item_id)
181{
182}
183
184/*---------------------------------------------------------------------------*/
185/*---------------------------------------------------------------------------*/
186
187UnknownItemTypeException::
188UnknownItemTypeException(const UnknownItemTypeException& ex) ARCANE_NOEXCEPT
189: Exception(ex)
190, m_nb_node(ex.m_nb_node)
191, m_item_id(ex.m_item_id)
192{
193}
194
195/*---------------------------------------------------------------------------*/
196/*---------------------------------------------------------------------------*/
197
199explain(std::ostream& m) const
200{
201 m << "Item number <" << m_item_id << "> with " << m_nb_node << " nodes\n"
202 << "is not a known type.\n";
203}
204
205/*---------------------------------------------------------------------------*/
206/*---------------------------------------------------------------------------*/
207
208/*---------------------------------------------------------------------------*/
209/*---------------------------------------------------------------------------*/
210
211BadReferenceException::
212BadReferenceException(const String& where)
213: Exception("BadReference",where)
214{
215}
216
217/*---------------------------------------------------------------------------*/
218/*---------------------------------------------------------------------------*/
219
221explain(std::ostream& m) const
222{
223 m << "Trying to dereference a null pointer.\n";
224}
225
226/*---------------------------------------------------------------------------*/
227/*---------------------------------------------------------------------------*/
228
229/*---------------------------------------------------------------------------*/
230/*---------------------------------------------------------------------------*/
231
232ReaderWriterException::
233ReaderWriterException(const String& where,const String& message)
234: Exception("ReaderWriterException",where, message)
235{
236}
237
238/*---------------------------------------------------------------------------*/
239/*---------------------------------------------------------------------------*/
240
241ReaderWriterException::
242ReaderWriterException(const TraceInfo& where,const String& message)
243: Exception("ReaderWriterException",where, message)
244{
245}
246
247/*---------------------------------------------------------------------------*/
248/*---------------------------------------------------------------------------*/
249
250ReaderWriterException::
251ReaderWriterException(const ReaderWriterException& ex) ARCANE_NOEXCEPT
252: Exception(ex)
253{
254}
255
256/*---------------------------------------------------------------------------*/
257/*---------------------------------------------------------------------------*/
258
260explain(std::ostream& m) const
261{
262 m << "Exception reading/writing.\n";
263}
264
265/*---------------------------------------------------------------------------*/
266/*---------------------------------------------------------------------------*/
267
268/*---------------------------------------------------------------------------*/
269/*---------------------------------------------------------------------------*/
270
272AssertionException(const TraceInfo& where)
273: Exception("AssertionException", where)
274, m_file(where.file())
275, m_line(where.line())
276{
277}
278
279/*---------------------------------------------------------------------------*/
280/*---------------------------------------------------------------------------*/
281
283AssertionException(const TraceInfo& where, const String& expected, const String& actual)
284: Exception("ReaderWriterException", where, "Actual : " + actual + ". Expected : " + expected + ".")
285, m_file(where.file())
286, m_line(where.line())
287{
288}
289
290/*---------------------------------------------------------------------------*/
291/*---------------------------------------------------------------------------*/
292
294explain(std::ostream& m) const
295{
296 m << "Assertion failed.\n";
297}
298
299/*---------------------------------------------------------------------------*/
300/*---------------------------------------------------------------------------*/
301
302ARCANE_END_NAMESPACE
303
304/*---------------------------------------------------------------------------*/
305/*---------------------------------------------------------------------------*/
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
AssertionException(const TraceInfo &where)
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
BadItemIdException(const String &where, Integer bad_id)
Construit une exception.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
virtual eDataType dataType() const =0
Type de la donnée gérée par la variable (Real, Integer, ...)
virtual eItemKind itemKind() const =0
Type des entités du maillage sur lequel repose la variable.
virtual Integer dimension() const =0
Dimension de la variable.
virtual String itemGroupName() const =0
Nom du groupe d'entité associée.
virtual String name() const =0
Nom de la variable.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
void explain(std::ostream &m) const override
Explique la cause de l'exception dans le flot o.
Classe de base d'une exception.
Référence à une instance.
Chaîne de caractères unicode.
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.
Definition DataTypes.h:39