我已经安装了 NB 7.1、WAMPP 1.7.7(带有 PHP 5.3.8)和 XDebug 2.1.4。我可以检查断点上的变量,好的。但如果发生异常,则 Netbeans 不知道这一点,而浏览器显示 xdebug 格式的调用堆栈。NB 仍然认为“netbeans-xdebug”正在“运行”。所以我的问题是:Netbeans 可以报告 PHP 异常吗?
关于@Andy 的解决方案
我准备此代码进行测试:
<?php
function exceptionHandler($ex) {
echo 'Uncaught exception: ', $ex->getMessage(), "\n"; // BREAKPOINT
}
set_exception_handler('exceptionHandler');
function errorHandler($errno, $errstr, $errfile, $errline) {
throw new ErrorException($errstr, 0, $errno, $errfile, $errline);
}
set_error_handler('errorHandler');
throw new Exception;
phpinfo();
?>
Netbeans 停止并报告我的断点,因此解决了一个问题。但 NB 立即显示标题为“Socket Exception”的警报,并附有文字:
发生套接字异常
如果您有手表,请尝试删除它们并重新启动调试器。如果删除 Watches 没有帮助或者您没有任何 Watches,请提交问题并提供重现问题的确切步骤。请附上IDE日志。附加您的项目也将非常有帮助。
我认为 PHP 在发生异常时终止,因此 xdebug 必须停止并且 Netbeans 会丢失配音数据。