| 
    SNAP Library 2.0, Developer 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.
References ErrNotify(), TOnExeStop::GetOnExeStopF(), TOnExeStop::IsOnExeStopF(), and SaveToErrLog().
                                                       {
  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.
Referenced by ExeStop(), and TZipIn::GetFLen().
                                      {
  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;
}

| void WrNotify | ( | const char * | CaptionCStr, | 
| const char * | NotifyCStr | ||
| ) | 
Definition at line 43 of file bd.cpp.
Referenced by ErrNotify(), TZipIn::GetFLen(), InfoNotify(), StatNotify(), and WarnNotify().
                                                              {
#if defined(__CONSOLE__) || defined(_CONSOLE)
  printf("*** %s: %s\n", CaptionCStr, NotifyCStr);
#else
  MessageBox(NULL, NotifyCStr, CaptionCStr, MB_OK);
#endif
}
