]> Creatis software - gdcm.git/blobdiff - src/gdcmException.h
Fix mistypings
[gdcm.git] / src / gdcmException.h
index 250fb60533a19b1e020f4e1520788d0f329e1d2c..0e46086034dab7f406a9b6fa0dafc88fb5d9e0f9 100644 (file)
-// 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
-//
-//
-
-#ifndef GDCM_EXCEPTION_H
-#define GDCM_EXCEPTION_H
+/*=========================================================================
+                                                                                
+  Program:   gdcm
+  Module:    $RCSfile: gdcmException.h,v $
+  Language:  C++
+  Date:      $Date: 2007/08/22 16:14:04 $
+  Version:   $Revision: 1.25 $
+                                                                                
+  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.html 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.
+                                                                                
+=========================================================================*/
+
+#ifndef _GDCM_EXCEPTION_H_
+#define _GDCM_EXCEPTION_H_
+
+#include "gdcmCommon.h"
 
 #include <string>
 #include <iostream>
 #include <exception>
-#include "gdcmCommon.h"
 
+namespace GDCM_NAME_SPACE 
+{
+
+//-----------------------------------------------------------------------------
 /**
- * Any exception thrown in the gdcm library
+ * \brief Any exception thrown in the gdcm library
  */
-class GDCM_EXPORT gdcmException : public exception {
- protected:
-  /// error message
-  std::string from;
-  /// error message
-  std::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 std::string &from, const std::string &error = "")
-    throw();
-  
-
-  /**
-   * virtual destructor makes this class dynamic
-   */
-  virtual ~gdcmException() {
-  }
-  
-  /// returns error message
-  const std::string &getError(void) const throw() {
-    return error;
-  }
-
-  /// returns exception name string
-  operator const char *() const 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();
-
-  /// try to discover this (dynamic) class name
-  virtual std::string getName() const throw();
-
-  friend std::ostream& operator<<(std::ostream &os, const gdcmException &e);
-  
+class GDCM_EXPORT Exception : public std::exception
+{
+public:
+   /*
+    * \brief 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 Exception(const std::string &from, const std::string &error = "")
+      throw();
+
+   /**
+    * \brief virtual destructor makes this class dynamic
+    */
+   virtual ~Exception() throw() {}
+
+   /// exception caught within exception class: print error message and die
+   static void fatal(const char *from) throw();
+
+   /// returns error message
+   const std::string &getError() const throw() { return Error;}
+
+   /// try to discover this (dynamic) class name
+   virtual std::string getName() const throw();
+
+   /// returns exception name string (overloads std::exception::what)
+   virtual const char *what() const throw() { return (const char *) *this;}
+
+   /// returns exception name string
+   operator const char *() const throw();
+
+   friend std::ostream &operator<<(std::ostream &os, const Exception &e);
+
+protected:
+   /// error message part 1
+   std::string From;
+   /// error message part 2
+   std::string Error;
 };
 
 
-/** prints exception stack on output stream
- * @param os output stream
- * @param e exception to print
- * @returns output stream os
+//-----------------------------------------------------------------------------
+/**
+ * \brief File error exception thrown in the gdcm library
  */
-std::ostream& operator<<(std::ostream &os, const gdcmException &e);
+class GDCM_EXPORT FileError : public Exception
+{
+public:
+   /**
+    * \brief 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 FileError(const std::string &from,
+                          const std::string &error = "File error")
+      throw() : Exception(from, error) { }
+};
 
 
+//-----------------------------------------------------------------------------
 /**
- * File error exception thrown in the gdcm library
+ * \brief Unexpected file format exception
  */
-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 std::string &from,
-                        const std::string &error = "File error")
-    throw() : gdcmException(from, error) {
-  }
+class GDCM_EXPORT FormatUnexpected : public Exception
+{
+public:
+   /// \brief Builds a 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 FormatUnexpected(const std::string &from,
+                             const std::string &error = "Unexpected file format")
+      throw() : Exception( from, error ) { }
 };
 
-
+//-----------------------------------------------------------------------------
 /**
- * Invalid file format exception
+ * \brief 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 std::string &from,
-                          const std::string &error = "Invalid file format error")
-    throw() : gdcmException(from, error) {
-  }
+class GDCM_EXPORT FormatError : public FormatUnexpected
+{
+public:
+   /// \brief Builds a 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 FormatError(const std::string &from,
+                        const std::string &error = "Invalid file format")
+      throw() : FormatUnexpected( 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 Exception &e);
+
+} // end namespace gdcm
 
+//-----------------------------------------------------------------------------
 #endif // GDCM_EXCEPTION_H