Version: 9.16.0
Utils_CorbaException.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SALOME Utils : general SALOME's definitions and tools
24// File : Utils_CorbaException.hxx
25// Author : Paul RASCLE, EDF
26// Module : SALOME
27// $Header$
28//
29#ifndef _UTILS_CORBAEXCEPTION_HXX_
30#define _UTILS_CORBAEXCEPTION_HXX_
31
32#include "SALOME_Utils.hxx"
33
34#include <SALOMEconfig.h>
35#include CORBA_SERVER_HEADER(SALOME_Exception)
36
40# define THROW_SALOME_CORBA_EXCEPTION(chain, typex) \
41 {\
42 SALOME::ExceptionStruct ExDescription; \
43 ExDescription.text = CORBA::string_dup(chain); \
44 ExDescription.type = typex; \
45 ExDescription.sourceFile = CORBA::string_dup(__FILE__); \
46 ExDescription.lineNumber = __LINE__; \
47 throw SALOME::SALOME_Exception(ExDescription); \
48 }
49
50#include <ostream>
51
52//Dump the CORBA exception type.
53inline std::ostream& operator<<(std::ostream& os, const CORBA::Exception& e)
54{
55 CORBA::Any tmp;
56 tmp<<= e;
57 CORBA::TypeCode_var tc = tmp.type();
58 const char *p = tc->name();
59 os << "CORBA Exception of type: ";
60 if ( *p != '\0' ) {
61 os<<p;
62 }
63 else {
64 os << tc->id();
65 }
66
67 return os;
68}
69
70#endif
std::ostream & operator<<(std::ostream &os, const CORBA::Exception &e)
Definition: Utils_CorbaException.hxx:53
tmp
Definition: TestSalomeSDS1.py:63