X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=src%2FgdcmException.h;h=436d664a3dfd412d372f6ead94806655a8d430e3;hb=3f352c77f6347c0a03ac918822a79bbca21fa98e;hp=3c30f94be732d78c03339b4a7cd9ddfb69a872c7;hpb=a76c87a014480149a0fc8524124a596083322600;p=gdcm.git diff --git a/src/gdcmException.h b/src/gdcmException.h index 3c30f94b..436d664a 100644 --- a/src/gdcmException.h +++ b/src/gdcmException.h @@ -1,130 +1,110 @@ -// gdcm.h - -// gdcmlib Intro: -// * gdcmlib is a library dedicated to reading and writing dicom files. -// * LGPL for the license -// * lightweigth as opposed to CTN or DCMTK which come bundled which try -// to implement the full DICOM standard (networking...). gdcmlib concentrates -// on reading and writing -// * Formats: this lib should be able to read ACR-NEMA v1 and v2, Dicom v3 (as -// stated in part10). [cf dcmtk/dcmdata/docs/datadict.txt] -// * Targeted plateforms: Un*xes and Win32/VC++6.0 -// -// - +// gdcmException.h +//----------------------------------------------------------------------------- #ifndef GDCM_EXCEPTION_H #define GDCM_EXCEPTION_H +#include "gdcmCommon.h" #include #include #include -using namespace std; - -#ifdef _MSC_VER -#define GDCM_EXPORT __declspec( dllexport ) -#else -#define GDCM_EXPORT -#endif -/** +//----------------------------------------------------------------------------- +/* * Any exception thrown in the gdcm library */ -class GDCM_EXPORT gdcmException : public exception { - protected: - /// error message - string from; - /// error message - string error; - - public: - /** - * Builds an exception with minimal information: name of the thrower - * method and error message - * - * @param from name of the thrower - * @param error error description string - */ - explicit gdcmException(const string &from, const string &error = "") +class GDCM_EXPORT gdcmException : public std::exception { +public: + /* + * Builds an exception with minimal information: name of the thrower + * method and error message + * + * @param from name of the thrower + * @param error error description string + */ + explicit gdcmException(const std::string &from, const std::string &error = "") throw(); - - - /** - * virtual descructor makes this class dynamic - */ - virtual ~gdcmException() { - } - - /// returns error message - const string &getError(void) const throw() { - return error; - } - /// returns exception name string - operator const char *() const throw(); + /* + * virtual destructor makes this class dynamic + */ + virtual ~gdcmException() throw() { + } - /// returns exception name string (overloads std::exception::what) - virtual const char *what() const throw() { - return (const char *) *this; - } + // exception caught within exception class: print error message and die + static void fatal(const char *from) throw(); + // returns error message + const std::string &getError(void) const throw() { + return error; + } - /// exception caught within exception class: print error message and die - static void fatal(const char *from) throw(); + // try to discover this (dynamic) class name + virtual std::string getName() const throw(); - /// try to discover this (dynamic) class name - virtual string getName() const throw(); + // returns exception name string (overloads std::exception::what) + virtual const char *what() const throw() { + return (const char *) *this; + } - friend ostream& operator<<(ostream &os, const gdcmException &e); - -}; + // returns exception name string + operator const char *() const throw(); + friend std::ostream& operator<<(std::ostream &os, const gdcmException &e); -/** prints exception stack on output stream - * @param os output stream - * @param e exception to print - * @returns output stream os - */ -ostream& operator<<(ostream &os, const gdcmException &e); +protected: + // error message + std::string from; + // error message + std::string error; +}; -/** +//----------------------------------------------------------------------------- +/* * File error exception thrown in the gdcm library */ class GDCM_EXPORT gdcmFileError : public gdcmException { - public: - /** - * Builds an file-related exception with minimal information: name of - * the thrower method and error message - * - * @param from name of the thrower - * @param error error description string - */ - explicit gdcmFileError(const string &from, - const string &error = "File error") - throw() : gdcmException(from, error) { - } +public: + /* + * Builds an file-related exception with minimal information: name of + * the thrower method and error message + * + * @param from name of the thrower + * @param error error description string + */ + explicit gdcmFileError(const std::string &from, + const std::string &error = "File error") + throw() : gdcmException(from, error) { + } }; - - -/** +//----------------------------------------------------------------------------- +/* * Invalid file format exception */ class GDCM_EXPORT gdcmFormatError : public gdcmException { - public: - /** - * Builds an file-related exception with minimal information: name of - * the thrower method and error message - * - * @param from name of the thrower - * @param error error description string - */ - explicit gdcmFormatError(const string &from, - const string &error = "Invalid file format error") - throw() : gdcmException(from, error) { - } +public: + /* + * Builds an file-related exception with minimal information: name of + * the thrower method and error message + * + * @param from name of the thrower + * @param error error description string + */ + explicit gdcmFormatError(const std::string &from, + const std::string &error = "Invalid file format error") + throw() : gdcmException(from, error) { + } }; +//----------------------------------------------------------------------------- +/* prints exception stack on output stream + * @param os output stream + * @param e exception to print + * @returns output stream os + */ +std::ostream& operator<<(std::ostream &os, const gdcmException &e); +//----------------------------------------------------------------------------- #endif // GDCM_EXCEPTION_H