Arcane  v3.14.10.0
Documentation développeur
Chargement...
Recherche...
Aucune correspondance
ArcaneException.h
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.h (C) 2000-2024 */
9/* */
10/* Exceptions lancées par Arcane. */
11/*---------------------------------------------------------------------------*/
12#ifndef ARCANE_ARCANEEXCEPTION_H
13#define ARCANE_ARCANEEXCEPTION_H
14/*---------------------------------------------------------------------------*/
15/*---------------------------------------------------------------------------*/
16
17#include "arcane/utils/Exception.h"
18#include "arcane/utils/String.h"
19
20#include "arcane/ArcaneTypes.h"
21
22/*---------------------------------------------------------------------------*/
23/*---------------------------------------------------------------------------*/
24
25namespace Arcane
26{
27class IVariable;
28
29/*---------------------------------------------------------------------------*/
30/*---------------------------------------------------------------------------*/
46class ARCANE_CORE_EXPORT BadIDException
47: public Exception
48{
49 public:
50
55 BadIDException(const String& where,const String& invalid_name);
56 ~BadIDException() ARCANE_NOEXCEPT override {}
57
58 public:
59
60 void explain(std::ostream& m) const override;
61
62 private:
63
65};
66
67/*---------------------------------------------------------------------------*/
68/*---------------------------------------------------------------------------*/
76class ARCANE_CORE_EXPORT BadItemIdException
77: public Exception
78{
79 public:
80
87 BadItemIdException(const String& where,Integer bad_id);
88 ~BadItemIdException() ARCANE_NOEXCEPT override {}
89
90 public:
91
92 void explain(std::ostream& m) const override;
93
94 private:
95
96 Integer m_bad_id;
97};
98
99/*---------------------------------------------------------------------------*/
100/*---------------------------------------------------------------------------*/
105class ARCANE_CORE_EXPORT InternalErrorException
106: public Exception
107{
108 public:
109
110 InternalErrorException(const String& where,const String& why);
111 InternalErrorException(const TraceInfo& where,const String& why);
112 InternalErrorException(const InternalErrorException& ex) ARCANE_NOEXCEPT;
113 ~InternalErrorException() ARCANE_NOEXCEPT override {}
114
115 public:
116
117 void explain(std::ostream& m) const override;
118
119 private:
120
121 String m_why;
122};
123
124/*---------------------------------------------------------------------------*/
125/*---------------------------------------------------------------------------*/
134class ARCANE_CORE_EXPORT BadVariableKindTypeException
135: public Exception
136{
137 public:
138
140 eItemKind kind,eDataType datatype,int dimension);
141 ~BadVariableKindTypeException() ARCANE_NOEXCEPT override {}
142
143 public:
144
145 void explain(std::ostream& m) const override;
146
147 private:
148
149 IVariable *m_valid_var;
150 eItemKind m_item_kind;
151 eDataType m_data_type;
152 int m_dimension;
153};
154
155/*---------------------------------------------------------------------------*/
156/*---------------------------------------------------------------------------*/
166: public Exception
167{
168 public:
169
171 const String& item_group_name);
172 ~BadPartialVariableItemGroupNameException() ARCANE_NOEXCEPT override {}
173
174 public:
175
176 void explain(std::ostream& m) const override;
177
178 private:
179
180 IVariable *m_valid_var;
181 String m_item_group_name;
182};
183
184
185/*---------------------------------------------------------------------------*/
186/*---------------------------------------------------------------------------*/
192class ARCANE_CORE_EXPORT UnknownItemTypeException
193: public Exception
194{
195 public:
196
197 UnknownItemTypeException(const String& where,Integer nb_node,Integer item_id);
199 ~UnknownItemTypeException() ARCANE_NOEXCEPT override {}
200
201 public:
202
203 void explain(std::ostream& m) const override;
204
205 private:
206
207 Integer m_nb_node;
208 Integer m_item_id;
209};
210
211/*---------------------------------------------------------------------------*/
212/*---------------------------------------------------------------------------*/
217class ARCANE_CORE_EXPORT BadReferenceException
218: public Exception
219{
220 public:
221
222 explicit BadReferenceException(const String& where);
223 ~BadReferenceException() ARCANE_NOEXCEPT override {}
224
225 public:
226
227 void explain(std::ostream& m) const override;
228
229 private:
230};
231
232/*---------------------------------------------------------------------------*/
233/*---------------------------------------------------------------------------*/
238class ARCANE_CORE_EXPORT ReaderWriterException
239: public Exception
240{
241 public:
242
243 ReaderWriterException(const String& where,const String& message);
244 ReaderWriterException(const TraceInfo& where,const String& message);
245 ReaderWriterException(const ReaderWriterException& ex) ARCANE_NOEXCEPT;
246 ~ReaderWriterException() ARCANE_NOEXCEPT override {}
247
248 public:
249
250 void explain(std::ostream& m) const override;
251};
252
253/*---------------------------------------------------------------------------*/
254/*---------------------------------------------------------------------------*/
259class ARCANE_CORE_EXPORT AssertionException
260: public Exception
261{
262 public:
266 explicit AssertionException(const TraceInfo& where);
267
272 AssertionException(const TraceInfo& where, const String& expected, const String& actual);
273
274 public:
275
276 void explain(std::ostream& m) const override;
278 const char* file() const { return m_file; }
280 int line() const { return m_line; }
281
282 public:
283
284 using Exception::where;
285 using Exception::message;
286
287 private:
288
289 const char* m_file;
290 int m_line;
291};
292
293/*---------------------------------------------------------------------------*/
294/*---------------------------------------------------------------------------*/
295
296} // End namespace Arcane
297
298/*---------------------------------------------------------------------------*/
299/*---------------------------------------------------------------------------*/
300
301#endif
Exception dans une assertion.
const char * file() const
Fichier de l'exception.
int line() const
Ligne de l'exception.
Exception sur un identifiant non valide.
String m_invalid_name
Identifiant invalide.
Exception sur un numéro d'entité non valide.
Integer m_bad_id
Numéro invalide.
Exception sur un nom de groupe d'items de variable partielle non valide.
Exception lorsqu'on essaie de déréférencer un pointer nul.
Exception sur un genre/type de variable non valide.
Interface d'une variable.
Definition IVariable.h:54
Exception lorsqu'une erreur interne survient.
Lecteur des fichiers de maillage via la bibliothèque LIMA.
Definition Lima.cc:120
Exception dans un lecteur ou écrivain.
Exception lorsqu'une entité du maillage n'est pas d'un type connu.
Classe de base d'une exception.
Chaîne de caractères unicode.
-*- tab-width: 2; indent-tabs-mode: nil; coding: utf-8-with-signature -*-
eItemKind
Genre d'entité de maillage.
eDataType
Type d'une donnée.
Definition DataTypes.h:39