提问人:Mark Roworth 提问时间:9/20/2021 更新时间:9/20/2021 访问量:34
PHP 在解析失败的页面上强制执行错误消息
PHP Impoved error messaging on pages that fail parsing
问:
这不完全是一个“修复我的代码”的问题,而更像是一个配置。我正在使用 HTML/Javascript/PHP/MySql 堆栈。我是一位经验丰富的 C#/TSQL 开发人员,但对这个堆栈相当陌生。我发现调试非常令人沮丧,因为在开发过程中没有显示编译/解析错误。例如,在进行了一系列修改后,在我的一个PHP库中,我有以下内容:
function sp_AssignNotificationsToUsr($CreateGUID, $UsrID, &$message) // boolean
// This assigns any notifications with the CreateGUID passed, to the UsrID passed.
// If successful, returns true, else false.
// If false is returned, look in $message for an error message.
{
try
{
$sql = "";
$sql .= "SET @CreateGUID = " . Str2SQL($CreateGUID) . ";" . PHP_EOL;
$sql .= "SET @UsrID = " . $UsrID . ";" . PHP_EOL;
$sql .= "" . PHP_EOL;
$sql .= "CALL AssignNotificationsToUsr(@CreateGUID, @UsrID);" . PHP_EOL;
$sql .= "" . PHP_EOL;
$db = new DB;
if (!$db->connect()) throw new Exception("Could not connect to database correctly.");
$dss = $db->executeMultiQuery2($sql);
$db->disconnect();
return true;
}
catch (Exception $e)
{
$message = $->getMessage();
ErrorMessageEmail("sprocs.php:sp_AssignNotificationsToUsr", 1, $e);
return false;
}
}
当我运行调用页面时,它返回空且没有错误。我已经在页面中执行了以下操作:
ini_set('display_startup_errors', 1);
ini_set('display_errors', 'On');
error_reporting(E_ALL);
当这种情况发生时(没有输出,没有错误),然后我会花时间在各种文件中注释大量代码,试图确定解析错误的位置。在这种情况下,结果是:
$message = $->getMessage();
应该是:
$message = $e->getMessage();
我习惯于 Visual Studio 在我尝试运行代码之前指出分析错误,这显然不是它在这里的工作方式。我正在使用 Notepad++ 作为编辑器。我可以使用一些配置来显示这样的编译时错误吗?客户端 Javascript 也是如此。如果它有解析错误,它只是不做任何事情,没有显示任何错误。如何从显示的解析器中获取错误?
答: 暂无答案
评论