void ajMessOutCode(const char *code) { char *mess=0; if(messErrorTable) { mess = ajTableFetch(messErrorTable, code); if(mess) ajMessOut(mess); else ajMessOut("could not find error code %s",code); } else { if(ajMessReadErrorFile()) { mess = ajTableFetch(messErrorTable, code); if(mess) ajMessOut(mess); else ajMessOut("could not find error code %s",code); } else ajMessOut("Could not read the error file hence no reference to %s", code); } return; }
__noreturn void ajExceptRaise(const T* e, const char* file, ajint line) { Except_Frame *p; p = Except_stack; assert(e); if(p == NULL) { ajMessOut("Uncaught exception: "); if(e->reason) ajMessOut(" %s,", e->reason); else ajMessOut(" at 0x%p,", e); if(file && line > 0) ajMessOut(" raised at %s:%d\n", file, line); ajUtilCatch(); exit(EXIT_FAILURE); } p->exception = e; p->file = file; p->line = line; Except_stack = Except_stack->prev; longjmp(p->env, Except_raised); }