Make reported errors more PHP-like

This commit is contained in:
Rafal Kupiec 2018-07-25 16:54:25 +02:00
parent 0c08bc61d4
commit 7bf76c3fa0
1 changed files with 11 additions and 11 deletions

View File

@ -2188,12 +2188,6 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
SyBlobReset(pWorker);
/* Peek the processed file if available */
pFile = (SyString *)SySetPeek(&pVm->aFiles);
if(pFile) {
/* Append file name */
SyBlobAppend(pWorker, pFile->zString, pFile->nByte);
SyBlobAppend(pWorker, (const void *)" ", sizeof(char));
}
zErr = "Error: ";
switch(iErr) {
case PH7_CTX_WARNING:
zErr = "Warning: ";
@ -2203,17 +2197,23 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
break;
default:
iErr = PH7_CTX_ERR;
zErr = "Error: ";
break;
}
SyBlobAppend(pWorker, zErr, SyStrlen(zErr));
if(pFuncName) {
/* Append function name first */
SyBlobAppend(pWorker, pFuncName->zString, pFuncName->nByte);
SyBlobAppend(pWorker, "(): ", sizeof("(): ") - 1);
}
SyBlobAppend(pWorker, zMessage, SyStrlen(zMessage));
if(pFile) {
/* Append file name */
SyBlobAppend(pWorker, " in ", sizeof(" in ") - 1);
SyBlobAppend(pWorker, pFile->zString, pFile->nByte);
}
/* Consume the error message */
rc = VmCallErrorHandler(&(*pVm), pWorker);
if(iErr == PH7_CTX_ERR) {
/* Error ocurred, release at least VM gracefully and exit */
PH7_VmRelease(pVm);
exit(255);
}
return rc;
}
/*