我的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...
答案 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)
注意不是例外。你不能通过尝试捕获它。