试试php 5.3.5中的Catch块无效

时间:2011-08-28 03:25:32

标签: php try-catch

我的WinXP盒子上安装了WampServer,PHP 3.5.3和apache 2.2.17。奇怪的是,try catch块无法正常工作,经过一些谷歌搜索,我只能发现bug存在于eaccelerator中(但phpinfo没有显示它的痕迹)。

我哪里错了?

try{
echo "from try";
parent::conect();
}catch(Exception $e){
echo "from catch";}

我的输出应该是

from tryfrom catch

但我得到了

from try
Fatal Error: cannot access parent:: when no class...

2 个答案:

答案 0 :(得分:1)

  

注意:未定义的变量:第4行中的a blah

这不是例外。这是一条错误消息。或者更具体地说是一个通知,它被分类为调试消息。

Try / Catch不会在默认的PHP设置中捕获它们。您需要一个错误handler,将它们转换为异常。但那将是愚蠢的。

在您的情况下,您应该事先定义您的变量。 (在其他一些情况下,您可以使用isset())进行测试。

$a = 0;
try {
   echo "from try";
   $a+=1;
}
catch(Exception $e) {
   echo "from catch";
}

然后,try / catch是多余的。 echo+操作都不会触发异常。

答案 1 :(得分:0)

注意不是例外。你不能通过尝试捕获它。