Make reported errors more PHP-like
This commit is contained in:
parent
0c08bc61d4
commit
7bf76c3fa0
22
engine/vm.c
22
engine/vm.c
|
@ -2188,12 +2188,6 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
|
||||||
SyBlobReset(pWorker);
|
SyBlobReset(pWorker);
|
||||||
/* Peek the processed file if available */
|
/* Peek the processed file if available */
|
||||||
pFile = (SyString *)SySetPeek(&pVm->aFiles);
|
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) {
|
switch(iErr) {
|
||||||
case PH7_CTX_WARNING:
|
case PH7_CTX_WARNING:
|
||||||
zErr = "Warning: ";
|
zErr = "Warning: ";
|
||||||
|
@ -2203,17 +2197,23 @@ PH7_PRIVATE sxi32 PH7_VmThrowError(
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
iErr = PH7_CTX_ERR;
|
iErr = PH7_CTX_ERR;
|
||||||
|
zErr = "Error: ";
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SyBlobAppend(pWorker, zErr, SyStrlen(zErr));
|
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));
|
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 */
|
/* Consume the error message */
|
||||||
rc = VmCallErrorHandler(&(*pVm), pWorker);
|
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;
|
return rc;
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
|
Loading…
Reference in New Issue