00001
00002
00004
00005 #ifdef WIN32
00006 #pragma warning(disable:4786)
00007 #endif
00008
00009 #include "ValueOutOfBoundException.h"
00010
00012
00014
00016
00017 ValueOutOfBoundException::ValueOutOfBoundException() throw()
00018 {
00019
00020 }
00021
00023
00024 ValueOutOfBoundException::~ValueOutOfBoundException() throw()
00025 {
00026
00027 }
00028
00034
00035 ValueOutOfBoundException::ValueOutOfBoundException(std::string sElementName,double dValue,double dValueMin, double dValueMax) throw(): _sElementName(sElementName),_dValue(dValue),_dValueMin(dValueMin),_dValueMax(dValueMax)
00036 {
00037 setLineNumber(0);
00038 setFileName("");
00039 setType("ValueOutOfBoundException");
00040
00041 setDescription(makeDescription());
00042 setReason(makeReason());
00043 setOrigin("");
00044
00045
00046 }
00047
00052
00053 ValueOutOfBoundException::ValueOutOfBoundException(std::string sElementName,double dValue,Bound* mBound) throw() : _sElementName(sElementName),_dValue(dValue),_dValueMin(mBound->getLowerBound()),_dValueMax(mBound->getUpperBound())
00054 {
00055 setLineNumber(0);
00056 setFileName("");
00057 setType("ValueOutOfBoundException");
00058
00059 setDescription(makeDescription());
00060 setReason(makeReason());
00061 setOrigin("");
00062 }
00063
00072
00073 ValueOutOfBoundException::ValueOutOfBoundException(std::string sElementName,double dValue,double dValueMin, double dValueMax,std::string sOrigin,std::string sFileName,unsigned int iLineNumber) throw() : _sElementName(sElementName),_dValue(dValue),_dValueMin(dValueMin),_dValueMax(dValueMax)
00074 {
00075 setType("ValueOutOfBoundException");
00076 setLineNumber(iLineNumber);
00077 setFileName(sFileName);
00078
00079 setDescription(makeDescription());
00080 setReason(makeReason());
00081 setOrigin(makeOrigin(sOrigin));
00082 }
00083
00085
00086 std::string ValueOutOfBoundException::makeDescription()
00087 {
00088 std::string sExceptionMessage = "The value ";
00089 sExceptionMessage += dtos(_dValue);
00090 sExceptionMessage += " of the ";
00091 sExceptionMessage += _sElementName;
00092 sExceptionMessage += " variable must be in the allowed bound [" ;
00093 sExceptionMessage += dtos(_dValueMin);
00094 sExceptionMessage += ",";
00095 sExceptionMessage += dtos(_dValueMax);
00096 sExceptionMessage += "]";
00097
00098 return sExceptionMessage;
00099 }
00100
00102
00103 std::string ValueOutOfBoundException::makeReason()
00104 {
00105 std::string sReasonMessage = "DATA_OUT_OF_RANGE --> ";
00106 sReasonMessage+= getType();
00107
00108 return sReasonMessage;
00109 }
00110
00112
00113 std::string ValueOutOfBoundException::makeOrigin(std::string sOrigin)
00114 {
00115 std::string sOriginMessage = getFileName();
00116 sOriginMessage+= " (l:";
00117 sOriginMessage+= ltos(getLineNumber());
00118 sOriginMessage+= ") ";
00119 sOriginMessage+= sOrigin;
00120
00121 return sOriginMessage;
00122 }