00001
00002
00004
00005 #ifdef WIN32
00006 #pragma warning(disable:4786)
00007 #endif
00008 #include "InfinityException.h"
00009
00011
00013
00015 InfinityException::InfinityException() throw()
00016 {
00017
00018 }
00019
00021 InfinityException::~InfinityException() throw()
00022 {
00023
00024 }
00025
00029 InfinityException::InfinityException(std::string sExpressionToCompute,std::string sInfinityValue) throw() :
00030 _sExpressionToCompute(sExpressionToCompute),_sInfinityValue(sInfinityValue)
00031 {
00032 setLineNumber(0);
00033 setFileName("");
00034 setType("InfinityException");
00035
00036 setDescription(makeDescription());
00037 setReason(makeReason());
00038 setOrigin("");
00039
00040 }
00041
00048 InfinityException::InfinityException(std::string sExpressionToCompute,
00049 std::string sInfinityValue,
00050 std::string sOrigin,
00051 std::string sFileName,
00052 unsigned int iLineNumber) throw() :
00053 _sExpressionToCompute(sExpressionToCompute),_sInfinityValue(sInfinityValue)
00054 {
00055 setLineNumber(iLineNumber);
00056 setFileName(sFileName);
00057 setType("InfinityException");
00058
00059 setDescription(makeDescription());
00060 setReason(makeReason());
00061 setOrigin(makeOrigin(sOrigin));
00062 }
00063
00065 std::string InfinityException::makeDescription()
00066 {
00067 std::string sExceptionMessage = "Computing of the ";
00068 sExceptionMessage+= _sExpressionToCompute;
00069 sExceptionMessage+= " make ";
00070 sExceptionMessage+= _sInfinityValue;
00071 sExceptionMessage+= " equal to infinity";
00072
00073 return sExceptionMessage;
00074 }
00075
00077 std::string InfinityException::makeReason()
00078 {
00079 std::string sReasonMessage = "OPERATION_NOT_ALLOWED --> ";
00080 sReasonMessage+= getType();
00081
00082 return sReasonMessage;
00083 }
00084
00085
00087 std::string InfinityException::makeOrigin(std::string sOrigin)
00088 {
00089 std::string sOriginMessage = getFileName();
00090 sOriginMessage+= " (l:";
00091 sOriginMessage+= ltos(getLineNumber());
00092 sOriginMessage+= ") ";
00093 sOriginMessage+= sOrigin;
00094
00095 return sOriginMessage;
00096 }