问题标签 [error-reporting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
14851 浏览

php - 无法让 PHP 报告错误

我看不到任何 PHP 错误。我已经尝试了所有可以打开错误报告的技巧,但没有任何效果。

display_errors 已打开,error_logging 已打开,但是当我查看任何有错误的页面时,我得到一个空白页面。

/var/log/php.log 不存在。

如果我设置本地日志文件,则不会创建任何内容。

我一直在测试的文件是

还有其他想法吗?

0 投票
2 回答
630 浏览

php - 对我的框架实施错误处理

我即将开始在我的框架中实现错误处理,并寻找一些关于如何构建它的建议。

首先让我解释一下我的框架目前是如何构建的:

我将框架启动与应用程序启动分开,因此在应用程序启动中引起的任何错误都应由专用于该类的类专门处理。

我的想法是有一个名为Core_Error_exceptionwitch 的类将错误报告设置为,E_ALL因为我的框架将严格限制PHP 5.3的错误,然后作为我的应用程序加载,我将在该类中运行一个关闭函数函数来恢复所有更改的默认值.

我想要做的是捕获所有错误,E_*_NOTICE然后E_*_ERROR在应用程序启动之前我告诉班级停止捕获错误,因为他们Application_Error_Exception会注意错误。

所以我需要一种方法来跟踪所有错误,包括异常和触发器,然后在应用程序初始化之前显示一个框架调试页面。

我正在寻找的那种类是这样的:

所以我想做的是能够以防跌落的方式构造这个类,以便任何可能被触发的通知错误都将被放入一个数组中,如果调用 E_ERROR 通知,那么它会自动运行关闭-在那一点上,以防止引起更多错误。

我将使用一个小的 html 模板处理程序,我可以在其中将错误集传递到该上下文集,因此请注意错误和单个(E_*_ERROR如果适用)。

与过去一样,构建此类的最佳方法是什么,我在进行错误跟踪/报告时遇到了一些困难。

更新:与当前课程

如果触发了错误,例如 trigger_error('test',XXX); 我希望能够跟踪所有错误,直到应用程序启动或触发 E_USER_ERROR。

有时我很难完全掌握 PHP 的错误系统,等等,因为有时我对如何构建它感到困惑,所以它是防摔的。

0 投票
3 回答
734 浏览

php - 你认为 error_reporting(1); 指令使?

您认为该error_reporting(1);指令会带来什么?

0 投票
4 回答
14487 浏览

configuration - 为什么 PHP 5.2.14 不会显示任何错误(即使是从命令行)?

我在 Windows 2008 R2 服务器和 Windows 7 64 位上安装了 PHP 5.2.10 和 PHP 5.2.14(x86 非线程安全 Win32 版本)。

由于某种原因,PHP 5.2.14 拒绝显示错误消息。

即使我设置了以下设置,php.ini如果我使用 5.2.14,我也不会报告任何错误:

php.exe即使在使用故意语法错误从命令行运行测试脚本时也会发生这种情况:

c:\php>php test.php

PHP 正在使用正确的php.ini文件,因为我可以在运行时看到我的设置发生了变化php.exe -i

我还注意到php.exePHP 5.2.14 的启动速度非常慢。

当我在同一台机器上使用 PHP 5.2.10 执行同一组测试时,我得到的错误消息报告得很好。

这两个php.ini文件都是库存的(基于php.ini-recommended),但修改了error_reportingdisplay_errors设置。

0 投票
3 回答
2997 浏览

php - PHP 不会显示任何错误

这是我的代码:

当我运行它时,我没有收到任何错误。

不知道这是怎么回事?

0 投票
4 回答
11068 浏览

python - python - 未定义的变量?

python 是否有一些未定义的变量/调试模式会输出通知/警告?

PHP 允许您修改 error_reporting 以打开通知警告,这意味着做

将在第 2 行抛出一个“未定义的变量 foo.......

python有类似的东西吗?

我在做的地方有一个错误

代替

我希望python会抛出一个未定义的变量连接......

你能在 python 中提高错误报告级别或类似级别吗?

0 投票
2 回答
1735 浏览

php - apache 2.2 (ubuntu) 不允许我通过 .htaccess 设置 php 错误报告?

我运行 ubuntu (debian) linux 和 apache 2.2/php 5.2 的服务器有问题

因为这主要是一个生产服务器,display_errors所以在 php.ini 中关闭

出于开发目的,我想为某些域启用这些错误报告。但是当我设置

php_flag display_errors on

在测试域的 .htaccess 文件中,它根本不起作用:(所以我必须在影响服务器上所有网站的 php.ini 中设置 display_errors ...如何在本地为一个域设置这个?

0 投票
2 回答
1916 浏览

php - 我的 Magento 权限是否正确?

我在 OS X Snow Leopard 10.6.4 上使用 MAMP 1.8.4 全新安装了 Magento 1.4.1.1。

我无法成功加载 magento/downloader(Magento Connect Manager)。我的浏览器显示空白页。Safari 的活动窗口告诉我这是一个内部服务器错误,这告诉我我的权限可能不正确。我已将整个 magento 目录的所有文件权限更改为 777,以测试目录/文件是否具有足够的权限。我仍然无法加载 Magento 连接(magento/downloader/)。

将所有文件设置为 777 是否足以测试正确的权限?以前有人遇到过这个问题吗?

0 投票
9 回答
1419 浏览

php - E_NOTICE ?== E_DEBUG,使用更复杂的 error_handler 避免 isset() 和 @

有哪些更好的方法可以避免应用程序逻辑过多,并在需要isset()保留查看调试消息 (E_NOTICE) 的能力?

首先假设:E_NOTICE 不是错误,它是用词不当,实际上应该是 E_DEBUG。然而,虽然这对于未设置的变量是正确的(PHP 仍然是一种脚本语言),但一些文件系统函数等也会抛出它们。因此,最好使用 E_NOTICEs进行开发。

然而,并非所有调试通知都是有用的,这就是为什么在整个应用程序逻辑中引入和 @ 是一个常见的(不幸的)PHP 习惯用法。isset()isset/empty 肯定有许多有效的用例,但总体而言,它似乎是语法盐,实际上会阻碍调试。

这就是我目前使用 error_reporting 小书签和哑开/关开关的原因:

但是,这仍然给我留下了启用后要搜索的通知太多的问题。作为解决方法,我可以使用@错误抑制运算符。与 isset() 不同,它不会完全终止调试选项,因为自定义错误处理程序仍然可以接收抑制的 E_NOTICE。因此,将预期的调试通知与潜在问题区分开来可能会有所帮助。

然而,这同样不能令人满意。因此问题。有没有人使用或知道更复杂的 PHP 错误处理程序。我在想象这样的事情:

  • 输出未经过滤的错误/警告/通知(使用 CSS 绝对定位?)
  • 和 AJAX-whatnot 允许客户端检查和抑制
  • 而且还保存了预期和“批准通知或警告的过滤列表。

当然,某些框架必须已经有这样的用户错误处理程序。

  • 基本上我对警告/通知管理感兴趣。
  • 完全不需要 E_NOTICE 抑制。
  • 需要E_NOTICES 。只是少了些。默认情况下,突出显示我可能关心的那些,而不是预期的。
  • 如果我在没有 ?order= 参数的情况下运行,则会出现预期的 NOTICE。这是意料之中的,我不需要多次通知。
  • 但是,在完全调试模式下,我确实希望通过所述调试通知的存在(或更有趣的是不存在)来查看未定义变量的存在。-> 这就是我认为他们的目的。避免 isset 会带来语言隐含的打印语句。
  • 还要意识到这是关于普通 PHP 表单处理语义适用的用例,而不是必须严格要求的应用程序领域。

哦,我的,有人请帮助重写这个。冗长的解释失败。

0 投票
4 回答
16270 浏览

php - “未定义的变量:_SESSION”VS。“会话已经开始”

嘿。我有一些 php 脚本。在其中一个中,我有代码 session_start(),当我在另一个脚本中再次有 session_start() 时,我得到了通知:

注意:会话已经开始...

那是合乎逻辑的。但是当我删除它时,我收到错误/通知:

注意:未定义的变量:_SESSION

为什么?我该如何解决?当我在脚本中有两个位置 session_start() 时,脚本工作正常(只得到一点通知),但当我没有两个 session_start() 时根本不起作用。

是唯一的解决方案

在我的脚本中?忽略通知不是不好的做法吗?

编辑:

我的部分代码:

输出:

注意:未定义变量:第 19 行 D:.....\main.php 中的 _SESSION

注意:未定义变量:第 21 行 D:.....\main.php 中的 _SESSION

空值

pre_dump 代码: