Tag: 错误报告

即使display_errors = On,PHP也不会显示错误

我有一个运行PHP5的Apache2的Ubuntu服务器。在php.ini中,我设置了error_reporting = E_ALL | E_STRICT error_reporting = E_ALL | E_STRICT和error_reporting = E_ALL | E_STRICT error_reporting = E_ALL | E_STRICT ,但PHP仍然不显示错误消息。 我也在使用Apache虚拟主机。 另外,PHP5.3提供的最严格的错误报告是什么? 我希望我的代码尽可能地保持最新和未来的发展。

在C#中logging错误

我正在从C ++编码切换到C#。 我需要用C#中类似的东西来replace我的C ++错误logging/报告macros系统。 在我的C ++源代码中,我可以写 LOGERR(“有些错误”); 或LOGERR(“错误与input%s和%d”,stringvar,intvar); macros和支持库代码然后将(可能是可变长度)格式的消息与源文件,源代码行,用户名和时间一起传递到数据库中。 同样的数据也被塞入到数据结构中,以便稍后向用户报告。 有没有人有C#代码片段或指针来做这个基本的错误报告/日志logging的例子? 编辑:当时我问这个问题,我真的是新的.NET,并不知道System.Diagnostics.Trace。 System.Diagnostics.Trace是我当时需要的。 从那以后,我在log日志需求更大,更复杂的项目上使用了log4net。 只需编辑500行XMLconfiguration文件和log4net将做你会需要的一切:)

为什么exception处理不好?

Google的Go语言没有任何例外的deviseselect,而Linux的名声也叫做exception废话。 为什么?

如何让用户阅读错误信息?

如果您为非技术用户编程,您会发现自己处于高度风险之中,用户不会阅读您认真的措辞和启发性的错误消息,而只需点击第一个可用的沮丧的button即可。 所以,我想知道什么好的做法,你可以推荐帮助用户实际阅读你的错误信息,而不是简单地放弃一边。 我能想到的想法会落在以下几点: 格式化当然有帮助; 也许是一个简单的短消息,带有“了解更多”button,导致更长,更详细的错误消息 将所有错误消息链接到用户指南的某个部分(有点难以实现) 只是不要发出错误信息,只是拒绝执行任务(一种有点“苹果”的处理用户input的方式) 编辑:我想到的观众是一个相当广泛的用户群,不太频繁地使用软件,不是俘虏(即没有内部软件或狭窄的社区)。 这个问题的一个更通用的forms被问到slashdot ,所以你可能想检查一些答案。

如何避免isset()和empty()

我有几个较旧的应用程序在E_NOTICE错误级别上运行时会抛出大量的“xyz is undefined”和“undefined offset”消息,因为variables的存在没有使用isset()和consorts显式检查。 我正在考虑通过它们来使它们与E_NOTICE兼容,因为有关缺lessvariables或偏移量的通知可能是救生员,可能会有一些微小的性能改进,并且总体而言是更简洁的方式。 但是,我不喜欢对我的代码造成数百个isset() empty()和array_key_exists() 。 它变得臃肿,变得不太可读,没有获得任何价值或意义方面的东西。 我怎样才能构build我的代码没有多余的variables检查,同时也是E_NOTICE兼容?

PHP的死亡白屏

现在我开始回到PHP,我开始记住为什么我放弃了。 我现在最讨厌的东西就是我所说的“PHP的死亡白屏”。 当PHP由于语法或其他原因而得到一个致命的错误时,它似乎总是死在没有实际发送任何东西给浏览器的情况下。 我已经将以下内容添加到了.htaccess ,而且似乎大部分时间都在工作,但在这些情况下不起作用。 php_value display_errors 1 php_value display_startup_errors 1 php_value error_reporting 2147483647 # E_ALL 我错过了什么吗? 目前,我觉得我需要刷新每隔几行代码,以免我犯了一个错误,不得不search很多页面,试图找出我犯的一个小错误。 编辑:例如,给出下面的两行代码: $foo = array(':language' => $languageId; $foo = array(':language' => $languageId); 第一个将展现死亡的白色屏幕(即根本没有任何东西印在浏览器上),而第二个则会愉快地执行。

我如何得到PHP错误显示?

我检查了我的PHP ini文件,显示错误已设置,错误报告是E_ALL 。 我重新启动了我的Apache Web服务器。 我甚至把这些行放在我的脚本的顶部,它甚至不能捕捉简单的parsing错误。 例如,我用"$"声明variables,并且不closures语句";" 。 但是我所有的脚本都显示了这些错误的空白页面,但是我想在浏览器输出中看到错误 。 error_reporting(E_ALL); ini_set('display_errors', 1); 还剩下什么?

如何在不同的环境中获取mysqli错误?

在我的LOCAL / DEV环境中,mysqli查询正在执行OK 。 但是,当我在我的WEBHOST环境上传它,我得到这个错误; 致命错误:调用一个非对象的成员函数bind_param()… 这里是代码: global $mysqli; $stmt = $mysqli->prepare("SELECT id, description FROM tbl_page_answer_category WHERE cur_own_id = ?"); $stmt->bind_param('i', $cur_id); $stmt->execute(); $stmt->bind_result($uid, $desc); 要检查我的查询,我试图通过控制面板phpmyadmin执行查询,结果是OK 。 如果有任何信息不足,请告诉我,以便我可以立即提供。