这应该是有效的。请告诉我我做错了什么。
这是代码:
<?php
try {
echo "start";
throw new Exception("test");
for ($index=0; $index < 1; $index++) {
echo "loop";
}
} catch ( Exception $e ){
echo "caught $e";
}
?>
我遇到了一个未被发现的例外,如果我在循环内投球,效果很好,但这违背了我的目的。我可以在不同的try/catch块中进行破解,但这很难。
我在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
正如landons所建议的,是eAccelerator的"优化"优化了我的接球盖帽。一旦我禁用了eAccelerator,它就会按预期工作。
为什么要回显$e
对象?试试这个:
try {
throw new Exception("test");
for ($index=0; $index < 1; $index++) {
echo "loop";
}
} catch ( Exception $e ){
echo $e->getMessage();
}