PHP 在解析失败的页面上强制执行错误消息

PHP Impoved error messaging on pages that fail parsing

提问人:Mark Roworth 提问时间:9/20/2021 更新时间:9/20/2021 访问量:34

问:

这不完全是一个“修复我的代码”的问题,而更像是一个配置。我正在使用 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 也是如此。如果它有解析错误,它只是不做任何事情,没有显示任何错误。如何从显示的解析器中获取错误?

JavaScript PHP HTML 错误报告

评论


答: 暂无答案