00001 #ifndef BALL_LINALG_EXCEPTION_H 00002 #define BALL_LINALG_EXCEPTION_H 00003 00004 #ifndef BALL_COMMON_EXCEPTION_H 00005 #include <BALL/COMMON/exception.h> 00006 #endif 00007 00008 #include <iostream> 00009 00010 namespace BALL 00011 { 00012 namespace Exception 00013 { 00014 class BALL_EXPORT MatrixHasWrongDimension : public BALL::Exception::GeneralException 00015 { 00016 public: 00017 MatrixHasWrongDimension() 00018 throw(); 00019 00020 MatrixHasWrongDimension(const char* file, unsigned long line) 00021 throw(); 00022 00023 virtual ~MatrixHasWrongDimension() 00024 throw(); 00025 }; 00026 00027 class BALL_EXPORT VectorHasWrongDimension : public BALL::Exception::GeneralException 00028 { 00029 public: 00030 VectorHasWrongDimension() 00031 throw(); 00032 00033 VectorHasWrongDimension(const char* file, unsigned long line) 00034 throw(); 00035 00036 virtual ~VectorHasWrongDimension() 00037 throw(); 00038 }; 00039 00040 class BALL_EXPORT MatrixNotRegular : public BALL::Exception::GeneralException 00041 { 00042 public: 00043 MatrixNotRegular() 00044 throw(); 00045 00046 ~MatrixNotRegular() 00047 throw(); 00048 }; 00049 00050 class BALL_EXPORT MatrixNotQuadratic : public BALL::Exception::GeneralException 00051 { 00052 public: 00053 MatrixNotQuadratic() 00054 throw(); 00055 00056 ~MatrixNotQuadratic() 00057 throw(); 00058 }; 00059 00060 class BALL_EXPORT MatrixIsSingular : public BALL::Exception::GeneralException 00061 { 00062 public: 00063 MatrixIsSingular(const char* file, unsigned long line) 00064 throw(); 00065 00066 ~MatrixIsSingular() 00067 throw(); 00068 }; 00069 00070 // class BALL_EXPORT OutOfMemory : public std::bad_alloc 00071 // { 00072 // public: 00073 // OutOfMemory(const char* file, int line, size_t n = 0) 00074 // throw(); 00075 // 00076 // virtual ~OutOfMemory() 00077 // throw(); 00078 // 00079 // protected: 00080 // size_t size_; 00081 // }; 00082 00083 // class BALL_EXPORT OutOfRange 00084 // { 00085 // public: 00086 // 00087 // OutOfRange(const char* file, int line, size_t size, size_t value) 00088 // throw(); 00089 // 00090 // ~OutOfRange() 00091 // throw(); 00092 // 00093 // protected: 00094 // size_t size_; 00095 // size_t index_; 00096 // }; 00097 00098 class BALL_EXPORT SingularIterator : public BALL::Exception::GeneralException 00099 { 00100 public: 00101 SingularIterator() 00102 throw(); 00103 00104 ~SingularIterator() 00105 throw(); 00106 }; 00107 00108 // class BALL_EXPORT InvalidIterator 00109 // { 00110 // public: 00111 // InvalidIterator() 00112 // throw(); 00113 // 00114 // ~InvalidIterator() 00115 // throw(); 00116 // }; 00117 00118 // class BALL_EXPORT Precondition 00119 // { 00120 // public: 00121 // Precondition() 00122 // throw(); 00123 // 00124 // ~Precondition() 00125 // throw(); 00126 // }; 00127 00128 // class BALL_EXPORT IncompatibleIterators 00129 // { 00130 // public: 00131 // IncompatibleIterators() 00132 // throw(); 00133 // 00134 // ~IncompatibleIterators() 00135 // throw(); 00136 // }; 00137 00138 class BALL_EXPORT Uninitialized : public BALL::Exception::GeneralException 00139 { 00140 public: 00141 Uninitialized() throw(); 00142 ~Uninitialized()throw(); 00143 }; 00144 } 00145 00146 } 00147 00148 #endif // BALL_COMMON_EXCEPTION_H