X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmException.cxx;h=f51f6e4c787253f03401efada3dbaaf25e8918f1;hb=6efceb0f2d025e536c69ea4345a83555a059cfa6;hp=d2d3d7cd030221b5c11ba898d5998cff8c5080eb;hpb=29bdd1e88a28b6267618f633f304e1154537ce7b;p=gdcm.git diff --git a/src/gdcmException.cxx b/src/gdcmException.cxx index d2d3d7cd..f51f6e4c 100644 --- a/src/gdcmException.cxx +++ b/src/gdcmException.cxx @@ -1,14 +1,40 @@ +/*========================================================================= + + Program: gdcm + Module: $RCSfile: gdcmException.cxx,v $ + Language: C++ + Date: $Date: 2004/08/16 04:25:18 $ + Version: $Revision: 1.17 $ + + Copyright (c) CREATIS (Centre de Recherche et d'Applications en Traitement de + l'Image). All rights reserved. See Doc/License.txt or + http://www.creatis.insa-lyon.fr/Public/Gdcm/License.htm for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ #include "gdcmException.h" #include #include +//----------------------------------------------------------------------------- +// gdcmException + +/** + * \ingroup gdcmException + * \brief constructor + * @param f + * @param msg + */ gdcmException::gdcmException(const std::string &f, const std::string& msg) throw() #ifdef __GNUC__ try #endif - : from(f), error(msg) { + : From(f), Error(msg) { } #ifdef __GNUC__ catch(...) { @@ -17,47 +43,63 @@ catch(...) { #endif - +/** + * \ingroup gdcmException + * \brief fatal + * @param from + */ void gdcmException::fatal(const char *from) throw() { - try { - std::cerr << "Fatal: exception received in " << from - << " while handling exception." << std::endl; - exit(-1); - } - catch(...) { - try { - std::cerr << "Fatal: exception received in Exception::fatal while handling exception." - << std::endl; - exit(-1); - } - catch(...) { + try + { + std::cerr << "Fatal: exception received in " << from + << " while handling exception." << std::endl; exit(-1); - } - } + } + catch(...) + { + try + { + std::cerr << "Fatal: exception received in Exception::fatal while handling exception." + << std::endl; + exit(-1); + } + catch(...) + { + exit(-1); + } + } } - -std::string gdcmException::getName() const throw() { - try { +/** + * \ingroup gdcmException + * \brief getName + * @return string + */ +std::string gdcmException::getName() const throw() +{ + try + { #ifdef __GNUC__ // GNU C++ compiler class name demangling unsigned int nested = 1, i, nb, offset; std::string one; std::string name; std::string iname = typeid(*this).name(); - if(iname[0] == 'Q') { - nested = iname[1] - '0'; - iname = std::string(iname, 2, std::string::npos); + if(iname[0] == 'Q') + { + nested = iname[1] - '0'; + iname = std::string(iname, 2, std::string::npos); } - for(i = 0; i < nested; i++) { - ::sscanf(iname.c_str(), "%u%n", &nb, &offset); - iname = std::string(iname, offset, std::string::npos); - name += std::string(iname, 0, nb); - if(i + 1 < nested) name += "::"; - iname = std::string(iname, nb, std::string::npos); + for(i = 0; i < nested; i++) + { + ::sscanf(iname.c_str(), "%u%n", &nb, &offset); + iname = std::string(iname, offset, std::string::npos); + name += std::string(iname, 0, nb); + if(i + 1 < nested) name += "::"; + iname = std::string(iname, nb, std::string::npos); } return name; -#else // no class name demangling +#else // no class name demangling //name = typeid(*this).name(); return "Exception"; #endif @@ -68,13 +110,20 @@ std::string gdcmException::getName() const throw() { } } - -gdcmException::operator const char *() const throw() { +/** + * \ingroup gdcmException + * \brief gdcmException + */ + gdcmException::operator const char *() const throw() { return getName().c_str(); } - -std::ostream& operator<<(std::ostream &os, const gdcmException &e) { +//----------------------------------------------------------------------------- +/** + * \ingroup gdcmException + * \brief gdcmException::operator << + */ + std::ostream& operator<<(std::ostream &os, const gdcmException &e) { try { os << "Exception " << e.getName() << " thrown: " << e.getError() << std::endl; } @@ -84,4 +133,4 @@ std::ostream& operator<<(std::ostream &os, const gdcmException &e) { return os; } - +//-----------------------------------------------------------------------------