为什么PHP没有显示异常?

RKh*_*RKh 1 javascript php

我正在使用以下代码.当查询崩溃时,它不显示我在"catch"块中定义的ALERT.

<?php
    error_reporting(E_ALL ^ E_NOTICE);
    require_once("../Lib/dbaccess.php");

    //Retrieve values from Input Form
    $CategoryName = $_POST["inCategory"];
    $TotalMembers = $_POST["inTotalMembers"];
    $Details = $_POST["inDetails"];
    $CategoryName = $_POST["inCategory"];
    $Chairman = $_POST["inChairman"];

    $InsertQuery = "REPLACE INTO electioncategorymaster (ecname, ecdescription, ectotalmembers, ecchairman, lastupdated) VALUES ('".$CategoryName."','".$Details."',".$TotalMembers.",'".$Chairman."',now())";
    try
    {
        $Result = dbaccess::InsertRecord($InsertQuery); 
    }
    catch(exception $ex)
    {
        echo "<script type='text/javascript'>alert('".$ex."');</script>";
    }
?>
Run Code Online (Sandbox Code Playgroud)

Pas*_*TIN 7

如果要获取异常消息,则应使用:

$ex->getMessage();
Run Code Online (Sandbox Code Playgroud)

而且不仅如此$ex.

此外,你应该转义该字符串中的引号,以确保有一些有效的Javascript字符串 - addslashes可能有帮助,在这里.


如果这不会改变一件事:

  • 你确定抛出了异常吗?
  • 你能看一下你脚本的输出吗?(浏览器中的"查看源代码")


此外,如果你想获得异常的完整堆栈跟踪,你可能想要使用这样的东西,而不是做一个JS alert:

echo '<pre>';
var_dump($ex);
echo '</pre>';
Run Code Online (Sandbox Code Playgroud)

而且,一如既往:在开发服务器上安装优秀的Xdebug扩展可以提供很多帮助;-)