这应该如此有用。请告诉我,我做错了。
以下是代码:
<?php
try {
echo "start";
throw new Exception("test");
for ($index=0; $index < 1; $index++) {
echo "loop";
}
} catch ( Exception $e ){
echo "caught $e";
}
?>
我得到了一个未被捕获的异常,如果我在循环中移动它可以正常工作,但这会失败我的目的。我可以破解单独的try / catch块,但那是hackish。
我在5.2.13和5.2.17服务器上尝试过。目前的产量为5.2.17,并且我没有在5.3.8上测试它,因为我必须让我的主机升级,并重新测试很多代码。
有爱吗?
P.S。 我知道异常和未捕获异常之间的区别。但这是结果:
start
Fatal error: Uncaught exception 'Exception' with message 'test' in C:\UniServer\www\admin\water_ws\test.php:4 Stack trace: #0 {main} thrown in C:\UniServer\www\admin\water_ws\test.php on line 4
答案 0 :(得分:0)
正如Landons所说,eAccelerator的“优化”优化了我的捕获块。一旦我禁用了eAccelerator,它就会按预期工作。
答案 1 :(得分:-1)
为什么要回显$e
对象?
试试这个:
try {
throw new Exception("test");
for ($index=0; $index < 1; $index++) {
echo "loop";
}
} catch ( Exception $e ){
echo $e->getMessage();
}