static Boolean bErrHandled = false; if (bErrHandled) return; else bErrHandled = true;
void ErrorHandler(short errCode){// TO DO//		* handle a "fatality" parameter for recovery    Str255      pErrorStr = "\pUnexpected error!";    Str255      pMessage = "\pError ";    char        *cErrNo = 0;    StringPtr   pErrNo = 0;        cErrNo = ltoa(errCode);    pErrNo = CToPascal(cErrNo);        if (errCode > 0)    // negative errors are definitely from the system so we don't interpret    {        GetIndString(pErrorStr, rErrorList, errCode);        pstrcat(pMessage, pErrNo);        pstrcat(pMessage, "\p: ");        pstrcat(pMessage, pErrorStr);    }    else    {        pstrcpy(pMessage, "\pSystem error: ");        pstrcat(pMessage, pErrNo);    }              ParamText(pMessage, "\p", "\p", "\p");        StopAlert(rAlrtError, nil);	SysBeep(10);	    if (cErrNo)        free(cErrNo);    if (pErrNo)        DisposePtr((Ptr) pErrNo);         	gDone = true;}