SNAP Library 2.0, User Reference
2013-05-13 16:33:57
SNAP, a general purpose, high performance system for analysis and manipulation of large networks
|
Go to the source code of this file.
Defines | |
#define | SW_TRACE 0 |
Functions | |
int | _matherr (struct _exception *e) |
void | WrNotify (const char *CaptionCStr, const char *NotifyCStr) |
void | SaveToErrLog (const char *MsgCStr) |
void | ExeStop (const char *MsgCStr, const char *ReasonCStr, const char *CondCStr, const char *FNm, const int &LnN) |
int _matherr | ( | struct _exception * | e | ) |
void ExeStop | ( | const char * | MsgCStr, |
const char * | ReasonCStr, | ||
const char * | CondCStr, | ||
const char * | FNm, | ||
const int & | LnN | ||
) |
Definition at line 90 of file bd.cpp.
{ char ReasonMsgCStr[1000]; #if SW_TRACE PrintBacktrace(); Crash(); #endif // construct reason message if (ReasonCStr==NULL){ReasonMsgCStr[0]=0;} else {sprintf(ReasonMsgCStr, " [Reason:'%s']", ReasonCStr);} // construct full message char FullMsgCStr[1000]; if (MsgCStr==NULL){ if (CondCStr==NULL){ sprintf(FullMsgCStr, "Execution stopped%s!", ReasonMsgCStr); } else { sprintf(FullMsgCStr, "Execution stopped: %s%s, file %s, line %d", CondCStr, ReasonMsgCStr, FNm, LnN); } } else { if (CondCStr==NULL){ sprintf(FullMsgCStr, "%s\nExecution stopped!", MsgCStr); } else { sprintf(FullMsgCStr, "Message: %s%s\nExecution stopped: %s, file %s, line %d", MsgCStr, ReasonMsgCStr, CondCStr, FNm, LnN); } } // report full message to log file SaveToErrLog(FullMsgCStr); // report to screen & stop execution bool Continue=false; // call handler if (TOnExeStop::IsOnExeStopF()){ Continue=!((*TOnExeStop::GetOnExeStopF())(FullMsgCStr));} if (!Continue){ ErrNotify(FullMsgCStr); #ifdef GLib_WIN32 abort(); //ExitProcess(1); #else exit(1); #endif } }
void SaveToErrLog | ( | const char * | MsgCStr | ) |
Definition at line 51 of file bd.cpp.
{ int MxFNmLen=1000; char* FNm=new char[MxFNmLen]; if (FNm==NULL){return;} int FNmLen=GetModuleFileName(NULL, FNm, MxFNmLen); if (FNmLen==0){return;} FNm[FNmLen++]='.'; FNm[FNmLen++]='E'; FNm[FNmLen++]='r'; FNm[FNmLen++]='r'; FNm[FNmLen++]=char(0); time_t Time=time(NULL); FILE* fOut=fopen(FNm, "a+b"); if (fOut==NULL){return;} fprintf(fOut, "--------\r\n%s\r\n%s%s\r\n--------\r\n", FNm, ctime(&Time), MsgCStr); fclose(fOut); delete[] FNm; }